<!DOCTYPE html>

<html>
  <head>
    <title>Protocol Documentation</title>
    <meta charset="UTF-8">
    <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Ubuntu:400,700,400italic"/>
    <style>
      body {
        width: 60em;
        margin: 1em auto;
        color: #222;
        font-family: "Ubuntu", sans-serif;
        padding-bottom: 4em;
      }

      h1 {
        font-weight: normal;
        border-bottom: 1px solid #aaa;
        padding-bottom: 0.5ex;
      }

      h2 {
        border-bottom: 1px solid #aaa;
        padding-bottom: 0.5ex;
        margin: 1.5em 0;
      }

      h3 {
        font-weight: normal;
        border-bottom: 1px solid #aaa;
        padding-bottom: 0.5ex;
      }

      a {
        text-decoration: none;
        color: #567e25;
      }

      table {
        width: 100%;
        font-size: 80%;
        border-collapse: collapse;
      }

      thead {
        font-weight: 700;
        background-color: #dcdcdc;
      }

      tbody tr:nth-child(even) {
        background-color: #fbfbfb;
      }

      td {
        border: 1px solid #ccc;
        padding: 0.5ex 2ex;
      }

      td p {
        text-indent: 1em;
        margin: 0;
      }

      td p:nth-child(1) {
        text-indent: 0;  
      }

       
      .field-table td:nth-child(1) {  
        width: 10em;
      }
      .field-table td:nth-child(2) {  
        width: 10em;
      }
      .field-table td:nth-child(3) {  
        width: 6em;
      }
      .field-table td:nth-child(4) {  
        width: auto;
      }

       
      .extension-table td:nth-child(1) {  
        width: 10em;
      }
      .extension-table td:nth-child(2) {  
        width: 10em;
      }
      .extension-table td:nth-child(3) {  
        width: 10em;
      }
      .extension-table td:nth-child(4) {  
        width: 5em;
      }
      .extension-table td:nth-child(5) {  
        width: auto;
      }

       
      .enum-table td:nth-child(1) {  
        width: 10em;
      }
      .enum-table td:nth-child(2) {  
        width: 10em;
      }
      .enum-table td:nth-child(3) {  
        width: auto;
      }

       
      .scalar-value-types-table tr {
        height: 3em;
      }

       
      #toc-container ul {
        list-style-type: none;
        padding-left: 1em;
        line-height: 180%;
        margin: 0;
      }
      #toc > li > a {
        font-weight: bold;
      }

       
      .file-heading {
        width: 100%;
        display: table;
        border-bottom: 1px solid #aaa;
        margin: 4em 0 1.5em 0;
      }
      .file-heading h2 {
        border: none;
        display: table-cell;
      }
      .file-heading a {
        text-align: right;
        display: table-cell;
      }

       
      .badge {
        width: 1.6em;
        height: 1.6em;
        display: inline-block;

        line-height: 1.6em;
        text-align: center;
        font-weight: bold;
        font-size: 60%;

        color: #89ba48;
        background-color: #dff0c8;

        margin: 0.5ex 1em 0.5ex -1em;
        border: 1px solid #fbfbfb;
        border-radius: 1ex;
      }
    </style>

    
    <link rel="stylesheet" type="text/css" href="stylesheet.css"/>
  </head>

  <body>

    <h1 id="title">Protocol Documentation</h1>

    <h2>Table of Contents</h2>

    <div id="toc-container">
      <ul id="toc">
        
          
          <li>
            <a href="#v1%2fannotation.proto">v1/annotation.proto</a>
            <ul>
              
              
                <li>
                  <a href="#bytebase.v1.AuthMethod"><span class="badge">E</span>AuthMethod</a>
                </li>
              
              
                <li>
                  <a href="#v1%2fannotation.proto-extensions"><span class="badge">X</span>File-level Extensions</a>
                </li>
              
                <li>
                  <a href="#v1%2fannotation.proto-extensions"><span class="badge">X</span>File-level Extensions</a>
                </li>
              
                <li>
                  <a href="#v1%2fannotation.proto-extensions"><span class="badge">X</span>File-level Extensions</a>
                </li>
              
                <li>
                  <a href="#v1%2fannotation.proto-extensions"><span class="badge">X</span>File-level Extensions</a>
                </li>
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2factuator_service.proto">v1/actuator_service.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.ActuatorInfo"><span class="badge">M</span>ActuatorInfo</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DeleteCacheRequest"><span class="badge">M</span>DeleteCacheRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetActuatorInfoRequest"><span class="badge">M</span>GetActuatorInfoRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetResourcePackageRequest"><span class="badge">M</span>GetResourcePackageRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ResourcePackage"><span class="badge">M</span>ResourcePackage</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdateActuatorInfoRequest"><span class="badge">M</span>UpdateActuatorInfoRequest</a>
                </li>
              
              
              
              
                <li>
                  <a href="#bytebase.v1.ActuatorService"><span class="badge">S</span>ActuatorService</a>
                </li>
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2fanomaly_service.proto">v1/anomaly_service.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.Anomaly"><span class="badge">M</span>Anomaly</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Anomaly.DatabaseConnectionDetail"><span class="badge">M</span>Anomaly.DatabaseConnectionDetail</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Anomaly.DatabaseSchemaDriftDetail"><span class="badge">M</span>Anomaly.DatabaseSchemaDriftDetail</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Anomaly.InstanceConnectionDetail"><span class="badge">M</span>Anomaly.InstanceConnectionDetail</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SearchAnomaliesRequest"><span class="badge">M</span>SearchAnomaliesRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SearchAnomaliesResponse"><span class="badge">M</span>SearchAnomaliesResponse</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.v1.Anomaly.AnomalySeverity"><span class="badge">E</span>Anomaly.AnomalySeverity</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Anomaly.AnomalyType"><span class="badge">E</span>Anomaly.AnomalyType</a>
                </li>
              
              
              
                <li>
                  <a href="#bytebase.v1.AnomalyService"><span class="badge">S</span>AnomalyService</a>
                </li>
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2fcommon.proto">v1/common.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.Position"><span class="badge">M</span>Position</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Range"><span class="badge">M</span>Range</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.v1.Engine"><span class="badge">E</span>Engine</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ExportFormat"><span class="badge">E</span>ExportFormat</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.MaskingLevel"><span class="badge">E</span>MaskingLevel</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.State"><span class="badge">E</span>State</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.VCSType"><span class="badge">E</span>VCSType</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2fiam_policy.proto">v1/iam_policy.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.Binding"><span class="badge">M</span>Binding</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.BindingDelta"><span class="badge">M</span>BindingDelta</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetIamPolicyRequest"><span class="badge">M</span>GetIamPolicyRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.IamPolicy"><span class="badge">M</span>IamPolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.PolicyDelta"><span class="badge">M</span>PolicyDelta</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SetIamPolicyRequest"><span class="badge">M</span>SetIamPolicyRequest</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.v1.BindingDelta.Action"><span class="badge">E</span>BindingDelta.Action</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2faudit_log_service.proto">v1/audit_log_service.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.AuditData"><span class="badge">M</span>AuditData</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.AuditLog"><span class="badge">M</span>AuditLog</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ExportAuditLogsRequest"><span class="badge">M</span>ExportAuditLogsRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ExportAuditLogsResponse"><span class="badge">M</span>ExportAuditLogsResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.RequestMetadata"><span class="badge">M</span>RequestMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SearchAuditLogsRequest"><span class="badge">M</span>SearchAuditLogsRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SearchAuditLogsResponse"><span class="badge">M</span>SearchAuditLogsResponse</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.v1.AuditLog.Severity"><span class="badge">E</span>AuditLog.Severity</a>
                </li>
              
              
              
                <li>
                  <a href="#bytebase.v1.AuditLogService"><span class="badge">S</span>AuditLogService</a>
                </li>
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2fauth_service.proto">v1/auth_service.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.CreateUserRequest"><span class="badge">M</span>CreateUserRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DeleteUserRequest"><span class="badge">M</span>DeleteUserRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetUserRequest"><span class="badge">M</span>GetUserRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.IdentityProviderContext"><span class="badge">M</span>IdentityProviderContext</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListUsersRequest"><span class="badge">M</span>ListUsersRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListUsersResponse"><span class="badge">M</span>ListUsersResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.LoginRequest"><span class="badge">M</span>LoginRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.LoginResponse"><span class="badge">M</span>LoginResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.LogoutRequest"><span class="badge">M</span>LogoutRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.OAuth2IdentityProviderContext"><span class="badge">M</span>OAuth2IdentityProviderContext</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.OIDCIdentityProviderContext"><span class="badge">M</span>OIDCIdentityProviderContext</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UndeleteUserRequest"><span class="badge">M</span>UndeleteUserRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdateUserRequest"><span class="badge">M</span>UpdateUserRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.User"><span class="badge">M</span>User</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.v1.UserType"><span class="badge">E</span>UserType</a>
                </li>
              
              
              
                <li>
                  <a href="#bytebase.v1.AuthService"><span class="badge">S</span>AuthService</a>
                </li>
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2finstance_role_service.proto">v1/instance_role_service.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.GetInstanceRoleRequest"><span class="badge">M</span>GetInstanceRoleRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.InstanceRole"><span class="badge">M</span>InstanceRole</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListInstanceRolesRequest"><span class="badge">M</span>ListInstanceRolesRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListInstanceRolesResponse"><span class="badge">M</span>ListInstanceRolesResponse</a>
                </li>
              
              
              
              
                <li>
                  <a href="#bytebase.v1.InstanceRoleService"><span class="badge">S</span>InstanceRoleService</a>
                </li>
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2finstance_service.proto">v1/instance_service.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.AddDataSourceRequest"><span class="badge">M</span>AddDataSourceRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.BatchSyncInstancesRequest"><span class="badge">M</span>BatchSyncInstancesRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.BatchSyncInstancesResponse"><span class="badge">M</span>BatchSyncInstancesResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.CreateInstanceRequest"><span class="badge">M</span>CreateInstanceRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DataSource"><span class="badge">M</span>DataSource</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DataSource.Address"><span class="badge">M</span>DataSource.Address</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DataSourceExternalSecret"><span class="badge">M</span>DataSourceExternalSecret</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DataSourceExternalSecret.AppRoleAuthOption"><span class="badge">M</span>DataSourceExternalSecret.AppRoleAuthOption</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DeleteInstanceRequest"><span class="badge">M</span>DeleteInstanceRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetInstanceRequest"><span class="badge">M</span>GetInstanceRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Instance"><span class="badge">M</span>Instance</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.InstanceOptions"><span class="badge">M</span>InstanceOptions</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.InstanceResource"><span class="badge">M</span>InstanceResource</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.KerberosConfig"><span class="badge">M</span>KerberosConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListInstancesRequest"><span class="badge">M</span>ListInstancesRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListInstancesResponse"><span class="badge">M</span>ListInstancesResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.RemoveDataSourceRequest"><span class="badge">M</span>RemoveDataSourceRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SASLConfig"><span class="badge">M</span>SASLConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SyncInstanceRequest"><span class="badge">M</span>SyncInstanceRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SyncInstanceResponse"><span class="badge">M</span>SyncInstanceResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SyncSlowQueriesRequest"><span class="badge">M</span>SyncSlowQueriesRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UndeleteInstanceRequest"><span class="badge">M</span>UndeleteInstanceRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdateDataSourceRequest"><span class="badge">M</span>UpdateDataSourceRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdateInstanceRequest"><span class="badge">M</span>UpdateInstanceRequest</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.v1.DataSource.AuthenticationType"><span class="badge">E</span>DataSource.AuthenticationType</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DataSource.RedisType"><span class="badge">E</span>DataSource.RedisType</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DataSourceExternalSecret.AppRoleAuthOption.SecretType"><span class="badge">E</span>DataSourceExternalSecret.AppRoleAuthOption.SecretType</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DataSourceExternalSecret.AuthType"><span class="badge">E</span>DataSourceExternalSecret.AuthType</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DataSourceExternalSecret.SecretType"><span class="badge">E</span>DataSourceExternalSecret.SecretType</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DataSourceType"><span class="badge">E</span>DataSourceType</a>
                </li>
              
              
              
                <li>
                  <a href="#bytebase.v1.InstanceService"><span class="badge">S</span>InstanceService</a>
                </li>
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2fdatabase_service.proto">v1/database_service.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.AdviseIndexRequest"><span class="badge">M</span>AdviseIndexRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.AdviseIndexResponse"><span class="badge">M</span>AdviseIndexResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.BatchUpdateDatabasesRequest"><span class="badge">M</span>BatchUpdateDatabasesRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.BatchUpdateDatabasesResponse"><span class="badge">M</span>BatchUpdateDatabasesResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ChangeHistory"><span class="badge">M</span>ChangeHistory</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ChangedResourceDatabase"><span class="badge">M</span>ChangedResourceDatabase</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ChangedResourceFunction"><span class="badge">M</span>ChangedResourceFunction</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ChangedResourceProcedure"><span class="badge">M</span>ChangedResourceProcedure</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ChangedResourceSchema"><span class="badge">M</span>ChangedResourceSchema</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ChangedResourceTable"><span class="badge">M</span>ChangedResourceTable</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ChangedResourceView"><span class="badge">M</span>ChangedResourceView</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ChangedResources"><span class="badge">M</span>ChangedResources</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.CheckConstraintMetadata"><span class="badge">M</span>CheckConstraintMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ColumnConfig"><span class="badge">M</span>ColumnConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ColumnConfig.LabelsEntry"><span class="badge">M</span>ColumnConfig.LabelsEntry</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ColumnMetadata"><span class="badge">M</span>ColumnMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Database"><span class="badge">M</span>Database</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Database.LabelsEntry"><span class="badge">M</span>Database.LabelsEntry</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DatabaseConfig"><span class="badge">M</span>DatabaseConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DatabaseMetadata"><span class="badge">M</span>DatabaseMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DatabaseSchema"><span class="badge">M</span>DatabaseSchema</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DeleteSecretRequest"><span class="badge">M</span>DeleteSecretRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DependentColumn"><span class="badge">M</span>DependentColumn</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DiffSchemaRequest"><span class="badge">M</span>DiffSchemaRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DiffSchemaResponse"><span class="badge">M</span>DiffSchemaResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ExtensionMetadata"><span class="badge">M</span>ExtensionMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ExternalTableMetadata"><span class="badge">M</span>ExternalTableMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ForeignKeyMetadata"><span class="badge">M</span>ForeignKeyMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.FunctionConfig"><span class="badge">M</span>FunctionConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.FunctionMetadata"><span class="badge">M</span>FunctionMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GenerationMetadata"><span class="badge">M</span>GenerationMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetChangeHistoryRequest"><span class="badge">M</span>GetChangeHistoryRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetDatabaseMetadataRequest"><span class="badge">M</span>GetDatabaseMetadataRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetDatabaseRequest"><span class="badge">M</span>GetDatabaseRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetDatabaseSchemaRequest"><span class="badge">M</span>GetDatabaseSchemaRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.IndexMetadata"><span class="badge">M</span>IndexMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListChangeHistoriesRequest"><span class="badge">M</span>ListChangeHistoriesRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListChangeHistoriesResponse"><span class="badge">M</span>ListChangeHistoriesResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListDatabasesRequest"><span class="badge">M</span>ListDatabasesRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListDatabasesResponse"><span class="badge">M</span>ListDatabasesResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListInstanceDatabasesRequest"><span class="badge">M</span>ListInstanceDatabasesRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListInstanceDatabasesResponse"><span class="badge">M</span>ListInstanceDatabasesResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListSecretsRequest"><span class="badge">M</span>ListSecretsRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListSecretsResponse"><span class="badge">M</span>ListSecretsResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListSlowQueriesRequest"><span class="badge">M</span>ListSlowQueriesRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListSlowQueriesResponse"><span class="badge">M</span>ListSlowQueriesResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.MaterializedViewMetadata"><span class="badge">M</span>MaterializedViewMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ProcedureConfig"><span class="badge">M</span>ProcedureConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ProcedureMetadata"><span class="badge">M</span>ProcedureMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SchemaConfig"><span class="badge">M</span>SchemaConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SchemaMetadata"><span class="badge">M</span>SchemaMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Secret"><span class="badge">M</span>Secret</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SlowQueryDetails"><span class="badge">M</span>SlowQueryDetails</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SlowQueryLog"><span class="badge">M</span>SlowQueryLog</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SlowQueryStatistics"><span class="badge">M</span>SlowQueryStatistics</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.StreamMetadata"><span class="badge">M</span>StreamMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SyncDatabaseRequest"><span class="badge">M</span>SyncDatabaseRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SyncDatabaseResponse"><span class="badge">M</span>SyncDatabaseResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TableConfig"><span class="badge">M</span>TableConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TableMetadata"><span class="badge">M</span>TableMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TablePartitionMetadata"><span class="badge">M</span>TablePartitionMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TaskMetadata"><span class="badge">M</span>TaskMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdateDatabaseMetadataRequest"><span class="badge">M</span>UpdateDatabaseMetadataRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdateDatabaseRequest"><span class="badge">M</span>UpdateDatabaseRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdateSecretRequest"><span class="badge">M</span>UpdateSecretRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ViewConfig"><span class="badge">M</span>ViewConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ViewMetadata"><span class="badge">M</span>ViewMetadata</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.v1.ChangeHistory.Source"><span class="badge">E</span>ChangeHistory.Source</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ChangeHistory.Status"><span class="badge">E</span>ChangeHistory.Status</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ChangeHistory.Type"><span class="badge">E</span>ChangeHistory.Type</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ChangeHistoryView"><span class="badge">E</span>ChangeHistoryView</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DatabaseMetadataView"><span class="badge">E</span>DatabaseMetadataView</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GenerationMetadata.Type"><span class="badge">E</span>GenerationMetadata.Type</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.StreamMetadata.Mode"><span class="badge">E</span>StreamMetadata.Mode</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.StreamMetadata.Type"><span class="badge">E</span>StreamMetadata.Type</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TablePartitionMetadata.Type"><span class="badge">E</span>TablePartitionMetadata.Type</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TaskMetadata.State"><span class="badge">E</span>TaskMetadata.State</a>
                </li>
              
              
              
                <li>
                  <a href="#bytebase.v1.DatabaseService"><span class="badge">S</span>DatabaseService</a>
                </li>
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2fbranch_service.proto">v1/branch_service.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.Branch"><span class="badge">M</span>Branch</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.CreateBranchRequest"><span class="badge">M</span>CreateBranchRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DeleteBranchRequest"><span class="badge">M</span>DeleteBranchRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DiffDatabaseRequest"><span class="badge">M</span>DiffDatabaseRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DiffDatabaseResponse"><span class="badge">M</span>DiffDatabaseResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DiffMetadataRequest"><span class="badge">M</span>DiffMetadataRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DiffMetadataResponse"><span class="badge">M</span>DiffMetadataResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetBranchRequest"><span class="badge">M</span>GetBranchRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListBranchesRequest"><span class="badge">M</span>ListBranchesRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListBranchesResponse"><span class="badge">M</span>ListBranchesResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.MergeBranchRequest"><span class="badge">M</span>MergeBranchRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.RebaseBranchRequest"><span class="badge">M</span>RebaseBranchRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.RebaseBranchResponse"><span class="badge">M</span>RebaseBranchResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdateBranchRequest"><span class="badge">M</span>UpdateBranchRequest</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.v1.BranchView"><span class="badge">E</span>BranchView</a>
                </li>
              
              
              
                <li>
                  <a href="#bytebase.v1.BranchService"><span class="badge">S</span>BranchService</a>
                </li>
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2fcel_service.proto">v1/cel_service.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.BatchDeparseRequest"><span class="badge">M</span>BatchDeparseRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.BatchDeparseResponse"><span class="badge">M</span>BatchDeparseResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.BatchParseRequest"><span class="badge">M</span>BatchParseRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.BatchParseResponse"><span class="badge">M</span>BatchParseResponse</a>
                </li>
              
              
              
              
                <li>
                  <a href="#bytebase.v1.CelService"><span class="badge">S</span>CelService</a>
                </li>
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2fchangelist_service.proto">v1/changelist_service.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.Changelist"><span class="badge">M</span>Changelist</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Changelist.Change"><span class="badge">M</span>Changelist.Change</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.CreateChangelistRequest"><span class="badge">M</span>CreateChangelistRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DeleteChangelistRequest"><span class="badge">M</span>DeleteChangelistRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetChangelistRequest"><span class="badge">M</span>GetChangelistRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListChangelistsRequest"><span class="badge">M</span>ListChangelistsRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListChangelistsResponse"><span class="badge">M</span>ListChangelistsResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdateChangelistRequest"><span class="badge">M</span>UpdateChangelistRequest</a>
                </li>
              
              
              
              
                <li>
                  <a href="#bytebase.v1.ChangelistService"><span class="badge">S</span>ChangelistService</a>
                </li>
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2fdatabase_group_service.proto">v1/database_group_service.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.CreateDatabaseGroupRequest"><span class="badge">M</span>CreateDatabaseGroupRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DatabaseGroup"><span class="badge">M</span>DatabaseGroup</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DatabaseGroup.Database"><span class="badge">M</span>DatabaseGroup.Database</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DeleteDatabaseGroupRequest"><span class="badge">M</span>DeleteDatabaseGroupRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetDatabaseGroupRequest"><span class="badge">M</span>GetDatabaseGroupRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListDatabaseGroupsRequest"><span class="badge">M</span>ListDatabaseGroupsRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListDatabaseGroupsResponse"><span class="badge">M</span>ListDatabaseGroupsResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdateDatabaseGroupRequest"><span class="badge">M</span>UpdateDatabaseGroupRequest</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.v1.DatabaseGroupView"><span class="badge">E</span>DatabaseGroupView</a>
                </li>
              
              
              
                <li>
                  <a href="#bytebase.v1.DatabaseGroupService"><span class="badge">S</span>DatabaseGroupService</a>
                </li>
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2fenvironment_service.proto">v1/environment_service.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.CreateEnvironmentRequest"><span class="badge">M</span>CreateEnvironmentRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DeleteEnvironmentRequest"><span class="badge">M</span>DeleteEnvironmentRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Environment"><span class="badge">M</span>Environment</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetEnvironmentRequest"><span class="badge">M</span>GetEnvironmentRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListEnvironmentsRequest"><span class="badge">M</span>ListEnvironmentsRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListEnvironmentsResponse"><span class="badge">M</span>ListEnvironmentsResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UndeleteEnvironmentRequest"><span class="badge">M</span>UndeleteEnvironmentRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdateEnvironmentRequest"><span class="badge">M</span>UpdateEnvironmentRequest</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.v1.EnvironmentTier"><span class="badge">E</span>EnvironmentTier</a>
                </li>
              
              
              
                <li>
                  <a href="#bytebase.v1.EnvironmentService"><span class="badge">S</span>EnvironmentService</a>
                </li>
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2fgroup.proto">v1/group.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.CreateGroupRequest"><span class="badge">M</span>CreateGroupRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DeleteGroupRequest"><span class="badge">M</span>DeleteGroupRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetGroupRequest"><span class="badge">M</span>GetGroupRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Group"><span class="badge">M</span>Group</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GroupMember"><span class="badge">M</span>GroupMember</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListGroupsRequest"><span class="badge">M</span>ListGroupsRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListGroupsResponse"><span class="badge">M</span>ListGroupsResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdateGroupRequest"><span class="badge">M</span>UpdateGroupRequest</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.v1.GroupMember.Role"><span class="badge">E</span>GroupMember.Role</a>
                </li>
              
              
              
                <li>
                  <a href="#bytebase.v1.GroupService"><span class="badge">S</span>GroupService</a>
                </li>
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2fidp_service.proto">v1/idp_service.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.CreateIdentityProviderRequest"><span class="badge">M</span>CreateIdentityProviderRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DeleteIdentityProviderRequest"><span class="badge">M</span>DeleteIdentityProviderRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.FieldMapping"><span class="badge">M</span>FieldMapping</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetIdentityProviderRequest"><span class="badge">M</span>GetIdentityProviderRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.IdentityProvider"><span class="badge">M</span>IdentityProvider</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.IdentityProviderConfig"><span class="badge">M</span>IdentityProviderConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.LDAPIdentityProviderConfig"><span class="badge">M</span>LDAPIdentityProviderConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListIdentityProvidersRequest"><span class="badge">M</span>ListIdentityProvidersRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListIdentityProvidersResponse"><span class="badge">M</span>ListIdentityProvidersResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.OAuth2IdentityProviderConfig"><span class="badge">M</span>OAuth2IdentityProviderConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.OAuth2IdentityProviderTestRequestContext"><span class="badge">M</span>OAuth2IdentityProviderTestRequestContext</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.OIDCIdentityProviderConfig"><span class="badge">M</span>OIDCIdentityProviderConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TestIdentityProviderRequest"><span class="badge">M</span>TestIdentityProviderRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TestIdentityProviderResponse"><span class="badge">M</span>TestIdentityProviderResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UndeleteIdentityProviderRequest"><span class="badge">M</span>UndeleteIdentityProviderRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdateIdentityProviderRequest"><span class="badge">M</span>UpdateIdentityProviderRequest</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.v1.IdentityProviderType"><span class="badge">E</span>IdentityProviderType</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.OAuth2AuthStyle"><span class="badge">E</span>OAuth2AuthStyle</a>
                </li>
              
              
              
                <li>
                  <a href="#bytebase.v1.IdentityProviderService"><span class="badge">S</span>IdentityProviderService</a>
                </li>
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2fissue_service.proto">v1/issue_service.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.ApprovalFlow"><span class="badge">M</span>ApprovalFlow</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ApprovalNode"><span class="badge">M</span>ApprovalNode</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ApprovalStep"><span class="badge">M</span>ApprovalStep</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ApprovalTemplate"><span class="badge">M</span>ApprovalTemplate</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ApproveIssueRequest"><span class="badge">M</span>ApproveIssueRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.BatchUpdateIssuesStatusRequest"><span class="badge">M</span>BatchUpdateIssuesStatusRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.BatchUpdateIssuesStatusResponse"><span class="badge">M</span>BatchUpdateIssuesStatusResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.CreateIssueCommentRequest"><span class="badge">M</span>CreateIssueCommentRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.CreateIssueRequest"><span class="badge">M</span>CreateIssueRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetIssueRequest"><span class="badge">M</span>GetIssueRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GrantRequest"><span class="badge">M</span>GrantRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Issue"><span class="badge">M</span>Issue</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Issue.Approver"><span class="badge">M</span>Issue.Approver</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Issue.TaskStatusCountEntry"><span class="badge">M</span>Issue.TaskStatusCountEntry</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.IssueComment"><span class="badge">M</span>IssueComment</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.IssueComment.Approval"><span class="badge">M</span>IssueComment.Approval</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.IssueComment.IssueUpdate"><span class="badge">M</span>IssueComment.IssueUpdate</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.IssueComment.StageEnd"><span class="badge">M</span>IssueComment.StageEnd</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.IssueComment.TaskPriorBackup"><span class="badge">M</span>IssueComment.TaskPriorBackup</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.IssueComment.TaskPriorBackup.Table"><span class="badge">M</span>IssueComment.TaskPriorBackup.Table</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.IssueComment.TaskUpdate"><span class="badge">M</span>IssueComment.TaskUpdate</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListIssueCommentsRequest"><span class="badge">M</span>ListIssueCommentsRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListIssueCommentsResponse"><span class="badge">M</span>ListIssueCommentsResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListIssuesRequest"><span class="badge">M</span>ListIssuesRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListIssuesResponse"><span class="badge">M</span>ListIssuesResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.RejectIssueRequest"><span class="badge">M</span>RejectIssueRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.RequestIssueRequest"><span class="badge">M</span>RequestIssueRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SearchIssuesRequest"><span class="badge">M</span>SearchIssuesRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SearchIssuesResponse"><span class="badge">M</span>SearchIssuesResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdateIssueCommentRequest"><span class="badge">M</span>UpdateIssueCommentRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdateIssueRequest"><span class="badge">M</span>UpdateIssueRequest</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.v1.ApprovalNode.GroupValue"><span class="badge">E</span>ApprovalNode.GroupValue</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ApprovalNode.Type"><span class="badge">E</span>ApprovalNode.Type</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ApprovalStep.Type"><span class="badge">E</span>ApprovalStep.Type</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Issue.Approver.Status"><span class="badge">E</span>Issue.Approver.Status</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Issue.RiskLevel"><span class="badge">E</span>Issue.RiskLevel</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Issue.Type"><span class="badge">E</span>Issue.Type</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.IssueComment.Approval.Status"><span class="badge">E</span>IssueComment.Approval.Status</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.IssueComment.TaskUpdate.Status"><span class="badge">E</span>IssueComment.TaskUpdate.Status</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.IssueStatus"><span class="badge">E</span>IssueStatus</a>
                </li>
              
              
              
                <li>
                  <a href="#bytebase.v1.IssueService"><span class="badge">S</span>IssueService</a>
                </li>
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2forg_policy_service.proto">v1/org_policy_service.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.CreatePolicyRequest"><span class="badge">M</span>CreatePolicyRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DataSourceQueryPolicy"><span class="badge">M</span>DataSourceQueryPolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DeletePolicyRequest"><span class="badge">M</span>DeletePolicyRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DisableCopyDataPolicy"><span class="badge">M</span>DisableCopyDataPolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetPolicyRequest"><span class="badge">M</span>GetPolicyRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListPoliciesRequest"><span class="badge">M</span>ListPoliciesRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListPoliciesResponse"><span class="badge">M</span>ListPoliciesResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.MaskData"><span class="badge">M</span>MaskData</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.MaskingExceptionPolicy"><span class="badge">M</span>MaskingExceptionPolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.MaskingExceptionPolicy.MaskingException"><span class="badge">M</span>MaskingExceptionPolicy.MaskingException</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.MaskingPolicy"><span class="badge">M</span>MaskingPolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.MaskingRulePolicy"><span class="badge">M</span>MaskingRulePolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.MaskingRulePolicy.MaskingRule"><span class="badge">M</span>MaskingRulePolicy.MaskingRule</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Policy"><span class="badge">M</span>Policy</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.RestrictIssueCreationForSQLReviewPolicy"><span class="badge">M</span>RestrictIssueCreationForSQLReviewPolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.RolloutPolicy"><span class="badge">M</span>RolloutPolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SQLReviewRule"><span class="badge">M</span>SQLReviewRule</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SlowQueryPolicy"><span class="badge">M</span>SlowQueryPolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TagPolicy"><span class="badge">M</span>TagPolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TagPolicy.TagsEntry"><span class="badge">M</span>TagPolicy.TagsEntry</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdatePolicyRequest"><span class="badge">M</span>UpdatePolicyRequest</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.v1.DataSourceQueryPolicy.Restriction"><span class="badge">E</span>DataSourceQueryPolicy.Restriction</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.MaskingExceptionPolicy.MaskingException.Action"><span class="badge">E</span>MaskingExceptionPolicy.MaskingException.Action</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.PolicyResourceType"><span class="badge">E</span>PolicyResourceType</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.PolicyType"><span class="badge">E</span>PolicyType</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SQLReviewRuleLevel"><span class="badge">E</span>SQLReviewRuleLevel</a>
                </li>
              
              
              
                <li>
                  <a href="#bytebase.v1.OrgPolicyService"><span class="badge">S</span>OrgPolicyService</a>
                </li>
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2fplan_service.proto">v1/plan_service.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.BatchCancelPlanCheckRunsRequest"><span class="badge">M</span>BatchCancelPlanCheckRunsRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.BatchCancelPlanCheckRunsResponse"><span class="badge">M</span>BatchCancelPlanCheckRunsResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.CreatePlanRequest"><span class="badge">M</span>CreatePlanRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetPlanRequest"><span class="badge">M</span>GetPlanRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListPlanCheckRunsRequest"><span class="badge">M</span>ListPlanCheckRunsRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListPlanCheckRunsResponse"><span class="badge">M</span>ListPlanCheckRunsResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListPlansRequest"><span class="badge">M</span>ListPlansRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListPlansResponse"><span class="badge">M</span>ListPlansResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Plan"><span class="badge">M</span>Plan</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Plan.ChangeDatabaseConfig"><span class="badge">M</span>Plan.ChangeDatabaseConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Plan.ChangeDatabaseConfig.GhostFlagsEntry"><span class="badge">M</span>Plan.ChangeDatabaseConfig.GhostFlagsEntry</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Plan.ChangeDatabaseConfig.PreUpdateBackupDetail"><span class="badge">M</span>Plan.ChangeDatabaseConfig.PreUpdateBackupDetail</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Plan.CreateDatabaseConfig"><span class="badge">M</span>Plan.CreateDatabaseConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Plan.CreateDatabaseConfig.LabelsEntry"><span class="badge">M</span>Plan.CreateDatabaseConfig.LabelsEntry</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Plan.ExportDataConfig"><span class="badge">M</span>Plan.ExportDataConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Plan.PlanCheckRunStatusCountEntry"><span class="badge">M</span>Plan.PlanCheckRunStatusCountEntry</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Plan.Spec"><span class="badge">M</span>Plan.Spec</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Plan.Step"><span class="badge">M</span>Plan.Step</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Plan.VCSSource"><span class="badge">M</span>Plan.VCSSource</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.PlanCheckRun"><span class="badge">M</span>PlanCheckRun</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.PlanCheckRun.Result"><span class="badge">M</span>PlanCheckRun.Result</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.PlanCheckRun.Result.SqlReviewReport"><span class="badge">M</span>PlanCheckRun.Result.SqlReviewReport</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.PlanCheckRun.Result.SqlSummaryReport"><span class="badge">M</span>PlanCheckRun.Result.SqlSummaryReport</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.RunPlanChecksRequest"><span class="badge">M</span>RunPlanChecksRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.RunPlanChecksResponse"><span class="badge">M</span>RunPlanChecksResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SearchPlansRequest"><span class="badge">M</span>SearchPlansRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SearchPlansResponse"><span class="badge">M</span>SearchPlansResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdatePlanRequest"><span class="badge">M</span>UpdatePlanRequest</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.v1.Plan.ChangeDatabaseConfig.Type"><span class="badge">E</span>Plan.ChangeDatabaseConfig.Type</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.PlanCheckRun.Result.Status"><span class="badge">E</span>PlanCheckRun.Result.Status</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.PlanCheckRun.Status"><span class="badge">E</span>PlanCheckRun.Status</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.PlanCheckRun.Type"><span class="badge">E</span>PlanCheckRun.Type</a>
                </li>
              
              
              
                <li>
                  <a href="#bytebase.v1.PlanService"><span class="badge">S</span>PlanService</a>
                </li>
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2fproject_service.proto">v1/project_service.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.Activity"><span class="badge">M</span>Activity</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.AddWebhookRequest"><span class="badge">M</span>AddWebhookRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.BatchGetIamPolicyRequest"><span class="badge">M</span>BatchGetIamPolicyRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.BatchGetIamPolicyResponse"><span class="badge">M</span>BatchGetIamPolicyResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.BatchGetIamPolicyResponse.PolicyResult"><span class="badge">M</span>BatchGetIamPolicyResponse.PolicyResult</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.CreateProjectRequest"><span class="badge">M</span>CreateProjectRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DeleteProjectRequest"><span class="badge">M</span>DeleteProjectRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DeploymentConfig"><span class="badge">M</span>DeploymentConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DeploymentSpec"><span class="badge">M</span>DeploymentSpec</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetDeploymentConfigRequest"><span class="badge">M</span>GetDeploymentConfigRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetProjectRequest"><span class="badge">M</span>GetProjectRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Label"><span class="badge">M</span>Label</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.LabelSelector"><span class="badge">M</span>LabelSelector</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.LabelSelectorRequirement"><span class="badge">M</span>LabelSelectorRequirement</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListProjectsRequest"><span class="badge">M</span>ListProjectsRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListProjectsResponse"><span class="badge">M</span>ListProjectsResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Project"><span class="badge">M</span>Project</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.RemoveWebhookRequest"><span class="badge">M</span>RemoveWebhookRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Schedule"><span class="badge">M</span>Schedule</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ScheduleDeployment"><span class="badge">M</span>ScheduleDeployment</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SearchProjectsRequest"><span class="badge">M</span>SearchProjectsRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SearchProjectsResponse"><span class="badge">M</span>SearchProjectsResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TestWebhookRequest"><span class="badge">M</span>TestWebhookRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TestWebhookResponse"><span class="badge">M</span>TestWebhookResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UndeleteProjectRequest"><span class="badge">M</span>UndeleteProjectRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdateDeploymentConfigRequest"><span class="badge">M</span>UpdateDeploymentConfigRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdateProjectRequest"><span class="badge">M</span>UpdateProjectRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdateWebhookRequest"><span class="badge">M</span>UpdateWebhookRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Webhook"><span class="badge">M</span>Webhook</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.v1.Activity.Type"><span class="badge">E</span>Activity.Type</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.OperatorType"><span class="badge">E</span>OperatorType</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Webhook.Type"><span class="badge">E</span>Webhook.Type</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Workflow"><span class="badge">E</span>Workflow</a>
                </li>
              
              
              
                <li>
                  <a href="#bytebase.v1.ProjectService"><span class="badge">S</span>ProjectService</a>
                </li>
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2freview_config_service.proto">v1/review_config_service.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.CreateReviewConfigRequest"><span class="badge">M</span>CreateReviewConfigRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DeleteReviewConfigRequest"><span class="badge">M</span>DeleteReviewConfigRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetReviewConfigRequest"><span class="badge">M</span>GetReviewConfigRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListReviewConfigsRequest"><span class="badge">M</span>ListReviewConfigsRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListReviewConfigsResponse"><span class="badge">M</span>ListReviewConfigsResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ReviewConfig"><span class="badge">M</span>ReviewConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdateReviewConfigRequest"><span class="badge">M</span>UpdateReviewConfigRequest</a>
                </li>
              
              
              
              
                <li>
                  <a href="#bytebase.v1.ReviewConfigService"><span class="badge">S</span>ReviewConfigService</a>
                </li>
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2frisk_service.proto">v1/risk_service.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.CreateRiskRequest"><span class="badge">M</span>CreateRiskRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DeleteRiskRequest"><span class="badge">M</span>DeleteRiskRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListRisksRequest"><span class="badge">M</span>ListRisksRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListRisksResponse"><span class="badge">M</span>ListRisksResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Risk"><span class="badge">M</span>Risk</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdateRiskRequest"><span class="badge">M</span>UpdateRiskRequest</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.v1.Risk.Source"><span class="badge">E</span>Risk.Source</a>
                </li>
              
              
              
                <li>
                  <a href="#bytebase.v1.RiskService"><span class="badge">S</span>RiskService</a>
                </li>
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2frole_service.proto">v1/role_service.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.CreateRoleRequest"><span class="badge">M</span>CreateRoleRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DeleteRoleRequest"><span class="badge">M</span>DeleteRoleRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListRolesRequest"><span class="badge">M</span>ListRolesRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListRolesResponse"><span class="badge">M</span>ListRolesResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Role"><span class="badge">M</span>Role</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdateRoleRequest"><span class="badge">M</span>UpdateRoleRequest</a>
                </li>
              
              
              
              
                <li>
                  <a href="#bytebase.v1.RoleService"><span class="badge">S</span>RoleService</a>
                </li>
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2frollout_service.proto">v1/rollout_service.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.BatchCancelTaskRunsRequest"><span class="badge">M</span>BatchCancelTaskRunsRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.BatchCancelTaskRunsResponse"><span class="badge">M</span>BatchCancelTaskRunsResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.BatchRunTasksRequest"><span class="badge">M</span>BatchRunTasksRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.BatchRunTasksResponse"><span class="badge">M</span>BatchRunTasksResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.BatchSkipTasksRequest"><span class="badge">M</span>BatchSkipTasksRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.BatchSkipTasksResponse"><span class="badge">M</span>BatchSkipTasksResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.CreateRolloutRequest"><span class="badge">M</span>CreateRolloutRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetRolloutRequest"><span class="badge">M</span>GetRolloutRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetTaskRunLogRequest"><span class="badge">M</span>GetTaskRunLogRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetTaskRunSessionRequest"><span class="badge">M</span>GetTaskRunSessionRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListTaskRunsRequest"><span class="badge">M</span>ListTaskRunsRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListTaskRunsResponse"><span class="badge">M</span>ListTaskRunsResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.PreviewRolloutRequest"><span class="badge">M</span>PreviewRolloutRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Rollout"><span class="badge">M</span>Rollout</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Stage"><span class="badge">M</span>Stage</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Task"><span class="badge">M</span>Task</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Task.DatabaseCreate"><span class="badge">M</span>Task.DatabaseCreate</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Task.DatabaseCreate.LabelsEntry"><span class="badge">M</span>Task.DatabaseCreate.LabelsEntry</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Task.DatabaseDataExport"><span class="badge">M</span>Task.DatabaseDataExport</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Task.DatabaseDataUpdate"><span class="badge">M</span>Task.DatabaseDataUpdate</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Task.DatabaseSchemaBaseline"><span class="badge">M</span>Task.DatabaseSchemaBaseline</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Task.DatabaseSchemaUpdate"><span class="badge">M</span>Task.DatabaseSchemaUpdate</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TaskRun"><span class="badge">M</span>TaskRun</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TaskRun.PriorBackupDetail"><span class="badge">M</span>TaskRun.PriorBackupDetail</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TaskRun.PriorBackupDetail.Item"><span class="badge">M</span>TaskRun.PriorBackupDetail.Item</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TaskRun.PriorBackupDetail.Item.Table"><span class="badge">M</span>TaskRun.PriorBackupDetail.Item.Table</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TaskRun.SchedulerInfo"><span class="badge">M</span>TaskRun.SchedulerInfo</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TaskRun.SchedulerInfo.WaitingCause"><span class="badge">M</span>TaskRun.SchedulerInfo.WaitingCause</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TaskRun.SchedulerInfo.WaitingCause.Task"><span class="badge">M</span>TaskRun.SchedulerInfo.WaitingCause.Task</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TaskRunLog"><span class="badge">M</span>TaskRunLog</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TaskRunLogEntry"><span class="badge">M</span>TaskRunLogEntry</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TaskRunLogEntry.CommandExecute"><span class="badge">M</span>TaskRunLogEntry.CommandExecute</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TaskRunLogEntry.CommandExecute.CommandResponse"><span class="badge">M</span>TaskRunLogEntry.CommandExecute.CommandResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TaskRunLogEntry.DatabaseSync"><span class="badge">M</span>TaskRunLogEntry.DatabaseSync</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TaskRunLogEntry.SchemaDump"><span class="badge">M</span>TaskRunLogEntry.SchemaDump</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TaskRunLogEntry.TaskRunStatusUpdate"><span class="badge">M</span>TaskRunLogEntry.TaskRunStatusUpdate</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TaskRunLogEntry.TransactionControl"><span class="badge">M</span>TaskRunLogEntry.TransactionControl</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TaskRunSession"><span class="badge">M</span>TaskRunSession</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TaskRunSession.Postgres"><span class="badge">M</span>TaskRunSession.Postgres</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TaskRunSession.Postgres.Session"><span class="badge">M</span>TaskRunSession.Postgres.Session</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.v1.Task.Status"><span class="badge">E</span>Task.Status</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Task.Type"><span class="badge">E</span>Task.Type</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TaskRun.ExportArchiveStatus"><span class="badge">E</span>TaskRun.ExportArchiveStatus</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TaskRun.Status"><span class="badge">E</span>TaskRun.Status</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TaskRunLogEntry.TaskRunStatusUpdate.Status"><span class="badge">E</span>TaskRunLogEntry.TaskRunStatusUpdate.Status</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TaskRunLogEntry.TransactionControl.Type"><span class="badge">E</span>TaskRunLogEntry.TransactionControl.Type</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.TaskRunLogEntry.Type"><span class="badge">E</span>TaskRunLogEntry.Type</a>
                </li>
              
              
              
                <li>
                  <a href="#bytebase.v1.RolloutService"><span class="badge">S</span>RolloutService</a>
                </li>
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2fsubscription_service.proto">v1/subscription_service.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.Feature"><span class="badge">M</span>Feature</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Feature.MatrixEntry"><span class="badge">M</span>Feature.MatrixEntry</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.FeatureMatrix"><span class="badge">M</span>FeatureMatrix</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetFeatureMatrixRequest"><span class="badge">M</span>GetFeatureMatrixRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetSubscriptionRequest"><span class="badge">M</span>GetSubscriptionRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.PatchSubscription"><span class="badge">M</span>PatchSubscription</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Subscription"><span class="badge">M</span>Subscription</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdateSubscriptionRequest"><span class="badge">M</span>UpdateSubscriptionRequest</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.v1.PlanType"><span class="badge">E</span>PlanType</a>
                </li>
              
              
              
                <li>
                  <a href="#bytebase.v1.SubscriptionService"><span class="badge">S</span>SubscriptionService</a>
                </li>
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2fsetting_service.proto">v1/setting_service.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.AgentPluginSetting"><span class="badge">M</span>AgentPluginSetting</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Announcement"><span class="badge">M</span>Announcement</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.AppIMSetting"><span class="badge">M</span>AppIMSetting</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.AppIMSetting.Feishu"><span class="badge">M</span>AppIMSetting.Feishu</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.AppIMSetting.Slack"><span class="badge">M</span>AppIMSetting.Slack</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.AppIMSetting.Wecom"><span class="badge">M</span>AppIMSetting.Wecom</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DataClassificationSetting"><span class="badge">M</span>DataClassificationSetting</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DataClassificationSetting.DataClassificationConfig"><span class="badge">M</span>DataClassificationSetting.DataClassificationConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DataClassificationSetting.DataClassificationConfig.ClassificationEntry"><span class="badge">M</span>DataClassificationSetting.DataClassificationConfig.ClassificationEntry</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DataClassificationSetting.DataClassificationConfig.DataClassification"><span class="badge">M</span>DataClassificationSetting.DataClassificationConfig.DataClassification</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DataClassificationSetting.DataClassificationConfig.Level"><span class="badge">M</span>DataClassificationSetting.DataClassificationConfig.Level</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ExternalApprovalSetting"><span class="badge">M</span>ExternalApprovalSetting</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ExternalApprovalSetting.Node"><span class="badge">M</span>ExternalApprovalSetting.Node</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetSettingRequest"><span class="badge">M</span>GetSettingRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetSettingResponse"><span class="badge">M</span>GetSettingResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListSettingsRequest"><span class="badge">M</span>ListSettingsRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListSettingsResponse"><span class="badge">M</span>ListSettingsResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.MaskingAlgorithmSetting"><span class="badge">M</span>MaskingAlgorithmSetting</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.MaskingAlgorithmSetting.Algorithm"><span class="badge">M</span>MaskingAlgorithmSetting.Algorithm</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.MaskingAlgorithmSetting.Algorithm.FullMask"><span class="badge">M</span>MaskingAlgorithmSetting.Algorithm.FullMask</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.MaskingAlgorithmSetting.Algorithm.InnerOuterMask"><span class="badge">M</span>MaskingAlgorithmSetting.Algorithm.InnerOuterMask</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.MaskingAlgorithmSetting.Algorithm.MD5Mask"><span class="badge">M</span>MaskingAlgorithmSetting.Algorithm.MD5Mask</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.MaskingAlgorithmSetting.Algorithm.RangeMask"><span class="badge">M</span>MaskingAlgorithmSetting.Algorithm.RangeMask</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.MaskingAlgorithmSetting.Algorithm.RangeMask.Slice"><span class="badge">M</span>MaskingAlgorithmSetting.Algorithm.RangeMask.Slice</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.MaximumSQLResultSizeSetting"><span class="badge">M</span>MaximumSQLResultSizeSetting</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SMTPMailDeliverySettingValue"><span class="badge">M</span>SMTPMailDeliverySettingValue</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SchemaTemplateSetting"><span class="badge">M</span>SchemaTemplateSetting</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SchemaTemplateSetting.ColumnType"><span class="badge">M</span>SchemaTemplateSetting.ColumnType</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SchemaTemplateSetting.FieldTemplate"><span class="badge">M</span>SchemaTemplateSetting.FieldTemplate</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SchemaTemplateSetting.TableTemplate"><span class="badge">M</span>SchemaTemplateSetting.TableTemplate</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SemanticTypeSetting"><span class="badge">M</span>SemanticTypeSetting</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SemanticTypeSetting.SemanticType"><span class="badge">M</span>SemanticTypeSetting.SemanticType</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Setting"><span class="badge">M</span>Setting</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdateSettingRequest"><span class="badge">M</span>UpdateSettingRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Value"><span class="badge">M</span>Value</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.WorkspaceApprovalSetting"><span class="badge">M</span>WorkspaceApprovalSetting</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.WorkspaceApprovalSetting.Rule"><span class="badge">M</span>WorkspaceApprovalSetting.Rule</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.WorkspaceProfileSetting"><span class="badge">M</span>WorkspaceProfileSetting</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.WorkspaceTrialSetting"><span class="badge">M</span>WorkspaceTrialSetting</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.v1.Announcement.AlertLevel"><span class="badge">E</span>Announcement.AlertLevel</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DatabaseChangeMode"><span class="badge">E</span>DatabaseChangeMode</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.MaskingAlgorithmSetting.Algorithm.InnerOuterMask.MaskType"><span class="badge">E</span>MaskingAlgorithmSetting.Algorithm.InnerOuterMask.MaskType</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SMTPMailDeliverySettingValue.Authentication"><span class="badge">E</span>SMTPMailDeliverySettingValue.Authentication</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SMTPMailDeliverySettingValue.Encryption"><span class="badge">E</span>SMTPMailDeliverySettingValue.Encryption</a>
                </li>
              
              
              
                <li>
                  <a href="#bytebase.v1.SettingService"><span class="badge">S</span>SettingService</a>
                </li>
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2fsheet_service.proto">v1/sheet_service.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.CreateSheetRequest"><span class="badge">M</span>CreateSheetRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetSheetRequest"><span class="badge">M</span>GetSheetRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Sheet"><span class="badge">M</span>Sheet</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SheetCommand"><span class="badge">M</span>SheetCommand</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SheetPayload"><span class="badge">M</span>SheetPayload</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdateSheetRequest"><span class="badge">M</span>UpdateSheetRequest</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.v1.SheetPayload.Type"><span class="badge">E</span>SheetPayload.Type</a>
                </li>
              
              
              
                <li>
                  <a href="#bytebase.v1.SheetService"><span class="badge">S</span>SheetService</a>
                </li>
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2fsql_service.proto">v1/sql_service.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.AdminExecuteRequest"><span class="badge">M</span>AdminExecuteRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.AdminExecuteResponse"><span class="badge">M</span>AdminExecuteResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Advice"><span class="badge">M</span>Advice</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.CheckRequest"><span class="badge">M</span>CheckRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.CheckResponse"><span class="badge">M</span>CheckResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DifferPreviewRequest"><span class="badge">M</span>DifferPreviewRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DifferPreviewResponse"><span class="badge">M</span>DifferPreviewResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ExecuteRequest"><span class="badge">M</span>ExecuteRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ExecuteResponse"><span class="badge">M</span>ExecuteResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ExportRequest"><span class="badge">M</span>ExportRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ExportResponse"><span class="badge">M</span>ExportResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GenerateRestoreSQLRequest"><span class="badge">M</span>GenerateRestoreSQLRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GenerateRestoreSQLResponse"><span class="badge">M</span>GenerateRestoreSQLResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ParseMyBatisMapperRequest"><span class="badge">M</span>ParseMyBatisMapperRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ParseMyBatisMapperResponse"><span class="badge">M</span>ParseMyBatisMapperResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.PrettyRequest"><span class="badge">M</span>PrettyRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.PrettyResponse"><span class="badge">M</span>PrettyResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.QueryHistory"><span class="badge">M</span>QueryHistory</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.QueryRequest"><span class="badge">M</span>QueryRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.QueryResponse"><span class="badge">M</span>QueryResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.QueryResult"><span class="badge">M</span>QueryResult</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.QueryRow"><span class="badge">M</span>QueryRow</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.RowValue"><span class="badge">M</span>RowValue</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SearchQueryHistoriesRequest"><span class="badge">M</span>SearchQueryHistoriesRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SearchQueryHistoriesResponse"><span class="badge">M</span>SearchQueryHistoriesResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.StringifyMetadataRequest"><span class="badge">M</span>StringifyMetadataRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.StringifyMetadataResponse"><span class="badge">M</span>StringifyMetadataResponse</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.v1.Advice.Status"><span class="badge">E</span>Advice.Status</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.CheckRequest.ChangeType"><span class="badge">E</span>CheckRequest.ChangeType</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.QueryHistory.Type"><span class="badge">E</span>QueryHistory.Type</a>
                </li>
              
              
              
                <li>
                  <a href="#bytebase.v1.SQLService"><span class="badge">S</span>SQLService</a>
                </li>
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2fvcs_connector_service.proto">v1/vcs_connector_service.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.CreateVCSConnectorRequest"><span class="badge">M</span>CreateVCSConnectorRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DeleteVCSConnectorRequest"><span class="badge">M</span>DeleteVCSConnectorRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetVCSConnectorRequest"><span class="badge">M</span>GetVCSConnectorRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListVCSConnectorsRequest"><span class="badge">M</span>ListVCSConnectorsRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListVCSConnectorsResponse"><span class="badge">M</span>ListVCSConnectorsResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdateVCSConnectorRequest"><span class="badge">M</span>UpdateVCSConnectorRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.VCSConnector"><span class="badge">M</span>VCSConnector</a>
                </li>
              
              
              
              
                <li>
                  <a href="#bytebase.v1.VCSConnectorService"><span class="badge">S</span>VCSConnectorService</a>
                </li>
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2fvcs_provider_service.proto">v1/vcs_provider_service.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.CreateVCSProviderRequest"><span class="badge">M</span>CreateVCSProviderRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DeleteVCSProviderRequest"><span class="badge">M</span>DeleteVCSProviderRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetVCSProviderRequest"><span class="badge">M</span>GetVCSProviderRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListVCSConnectorsInProviderRequest"><span class="badge">M</span>ListVCSConnectorsInProviderRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListVCSConnectorsInProviderResponse"><span class="badge">M</span>ListVCSConnectorsInProviderResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListVCSProvidersRequest"><span class="badge">M</span>ListVCSProvidersRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.ListVCSProvidersResponse"><span class="badge">M</span>ListVCSProvidersResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SearchVCSProviderRepositoriesRequest"><span class="badge">M</span>SearchVCSProviderRepositoriesRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SearchVCSProviderRepositoriesResponse"><span class="badge">M</span>SearchVCSProviderRepositoriesResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdateVCSProviderRequest"><span class="badge">M</span>UpdateVCSProviderRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.VCSProvider"><span class="badge">M</span>VCSProvider</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.VCSRepository"><span class="badge">M</span>VCSRepository</a>
                </li>
              
              
              
              
                <li>
                  <a href="#bytebase.v1.VCSProviderService"><span class="badge">S</span>VCSProviderService</a>
                </li>
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2fworksheet_service.proto">v1/worksheet_service.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.v1.CreateWorksheetRequest"><span class="badge">M</span>CreateWorksheetRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.DeleteWorksheetRequest"><span class="badge">M</span>DeleteWorksheetRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.GetWorksheetRequest"><span class="badge">M</span>GetWorksheetRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SearchWorksheetsRequest"><span class="badge">M</span>SearchWorksheetsRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.SearchWorksheetsResponse"><span class="badge">M</span>SearchWorksheetsResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdateWorksheetOrganizerRequest"><span class="badge">M</span>UpdateWorksheetOrganizerRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.UpdateWorksheetRequest"><span class="badge">M</span>UpdateWorksheetRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.Worksheet"><span class="badge">M</span>Worksheet</a>
                </li>
              
                <li>
                  <a href="#bytebase.v1.WorksheetOrganizer"><span class="badge">M</span>WorksheetOrganizer</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.v1.Worksheet.Visibility"><span class="badge">E</span>Worksheet.Visibility</a>
                </li>
              
              
              
                <li>
                  <a href="#bytebase.v1.WorksheetService"><span class="badge">S</span>WorksheetService</a>
                </li>
              
            </ul>
          </li>
        
          
          <li>
            <a href="#v1%2fworkspace_service.proto">v1/workspace_service.proto</a>
            <ul>
              
              
              
              
                <li>
                  <a href="#bytebase.v1.WorkspaceService"><span class="badge">S</span>WorkspaceService</a>
                </li>
              
            </ul>
          </li>
        
        <li><a href="#scalar-value-types">Scalar Value Types</a></li>
      </ul>
    </div>

    
      
      <div class="file-heading">
        <h2 id="v1/annotation.proto">v1/annotation.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      

      
        <h3 id="bytebase.v1.AuthMethod">AuthMethod</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>AUTH_METHOD_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>IAM</td>
                <td>1</td>
                <td><p>IAM uses the standard IAM authorization check on the organizational resources.</p></td>
              </tr>
            
              <tr>
                <td>CUSTOM</td>
                <td>2</td>
                <td><p>Custom authorization method.</p></td>
              </tr>
            
          </tbody>
        </table>
      

      
        <h3 id="v1/annotation.proto-extensions">File-level Extensions</h3>
        <table class="extension-table">
          <thead>
            <tr><td>Extension</td><td>Type</td><td>Base</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>allow_without_credential</td>
                <td><a href="#bool">bool</a></td>
                <td><a href="#google.protobuf.MethodOptions">.google.protobuf.MethodOptions</a></td>
                <td>100000</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>audit</td>
                <td><a href="#bool">bool</a></td>
                <td><a href="#google.protobuf.MethodOptions">.google.protobuf.MethodOptions</a></td>
                <td>100003</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>auth_method</td>
                <td><a href="#bytebase.v1.AuthMethod">AuthMethod</a></td>
                <td><a href="#google.protobuf.MethodOptions">.google.protobuf.MethodOptions</a></td>
                <td>100002</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>permission</td>
                <td><a href="#string">string</a></td>
                <td><a href="#google.protobuf.MethodOptions">.google.protobuf.MethodOptions</a></td>
                <td>100001</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      
    
      
      <div class="file-heading">
        <h2 id="v1/actuator_service.proto">v1/actuator_service.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.ActuatorInfo">ActuatorInfo</h3>
        <p>ServerInfo is the API message for server info.</p><p>Actuator concept is similar to the Spring Boot Actuator.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>version</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>version is the bytebase&#39;s server version </p></td>
                </tr>
              
                <tr>
                  <td>git_commit</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>git_commit is the git commit hash of the build </p></td>
                </tr>
              
                <tr>
                  <td>readonly</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>readonly flag means if the Bytebase is running in readonly mode. </p></td>
                </tr>
              
                <tr>
                  <td>saas</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>saas flag means if the Bytebase is running in SaaS mode, some features are not allowed to edit by users. </p></td>
                </tr>
              
                <tr>
                  <td>demo_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>demo_name specifies the demo name, empty string means no demo. </p></td>
                </tr>
              
                <tr>
                  <td>host</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>host is the Bytebase instance host. </p></td>
                </tr>
              
                <tr>
                  <td>port</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>port is the Bytebase instance port. </p></td>
                </tr>
              
                <tr>
                  <td>external_url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>external_url is the URL where user or webhook callback visits Bytebase. </p></td>
                </tr>
              
                <tr>
                  <td>need_admin_setup</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>need_admin_setup flag means the Bytebase instance doesn&#39;t have any end users. </p></td>
                </tr>
              
                <tr>
                  <td>disallow_signup</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>disallow_signup is the flag to disable self-service signup. </p></td>
                </tr>
              
                <tr>
                  <td>last_active_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>last_active_time is the service last active time in UTC Time Format, any API calls will refresh this value. </p></td>
                </tr>
              
                <tr>
                  <td>require_2fa</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>require_2fa is the flag to require 2FA for all users. </p></td>
                </tr>
              
                <tr>
                  <td>workspace_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>workspace_id is the identifier for the workspace. </p></td>
                </tr>
              
                <tr>
                  <td>gitops_webhook_url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>gitops_webhook_url is the webhook URL for GitOps. </p></td>
                </tr>
              
                <tr>
                  <td>debug</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>debug flag means if the debug mode is enabled. </p></td>
                </tr>
              
                <tr>
                  <td>lsp</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>lsp is the enablement of lsp in SQL Editor. </p></td>
                </tr>
              
                <tr>
                  <td>pre_update_backup</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>pre_update_backup is the enablement of data backup prior to data update. </p></td>
                </tr>
              
                <tr>
                  <td>iam_guard</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>iam_guard is the enablement of IAM checks. </p></td>
                </tr>
              
                <tr>
                  <td>unlicensed_features</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>disallow_password_signin</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>disallow_password_signin is the flag to disallow user signin with email&amp;password. (except workspace admins) </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DeleteCacheRequest">DeleteCacheRequest</h3>
        <p></p>

        

        
      
        <h3 id="bytebase.v1.GetActuatorInfoRequest">GetActuatorInfoRequest</h3>
        <p></p>

        

        
      
        <h3 id="bytebase.v1.GetResourcePackageRequest">GetResourcePackageRequest</h3>
        <p>The request message for getting the theme resource.</p>

        

        
      
        <h3 id="bytebase.v1.ResourcePackage">ResourcePackage</h3>
        <p>The theme resources.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>logo</td>
                  <td><a href="#bytes">bytes</a></td>
                  <td></td>
                  <td><p>The branding logo. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdateActuatorInfoRequest">UpdateActuatorInfoRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>actuator</td>
                  <td><a href="#bytebase.v1.ActuatorInfo">ActuatorInfo</a></td>
                  <td></td>
                  <td><p>The actuator to update. </p></td>
                </tr>
              
                <tr>
                  <td>update_mask</td>
                  <td><a href="#google.protobuf.FieldMask">google.protobuf.FieldMask</a></td>
                  <td></td>
                  <td><p>The list of fields to update. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
        <h3 id="bytebase.v1.ActuatorService">ActuatorService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>GetActuatorInfo</td>
                <td><a href="#bytebase.v1.GetActuatorInfoRequest">GetActuatorInfoRequest</a></td>
                <td><a href="#bytebase.v1.ActuatorInfo">ActuatorInfo</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UpdateActuatorInfo</td>
                <td><a href="#bytebase.v1.UpdateActuatorInfoRequest">UpdateActuatorInfoRequest</a></td>
                <td><a href="#bytebase.v1.ActuatorInfo">ActuatorInfo</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DeleteCache</td>
                <td><a href="#bytebase.v1.DeleteCacheRequest">DeleteCacheRequest</a></td>
                <td><a href="#google.protobuf.Empty">.google.protobuf.Empty</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>GetResourcePackage</td>
                <td><a href="#bytebase.v1.GetResourcePackageRequest">GetResourcePackageRequest</a></td>
                <td><a href="#bytebase.v1.ResourcePackage">ResourcePackage</a></td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>GetActuatorInfo</td>
                <td>GET</td>
                <td>/v1/actuator/info</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdateActuatorInfo</td>
                <td>PATCH</td>
                <td>/v1/actuator/info</td>
                <td>actuator</td>
              </tr>
              
            
              
              
              <tr>
                <td>DeleteCache</td>
                <td>DELETE</td>
                <td>/v1/actuator/cache</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>GetResourcePackage</td>
                <td>GET</td>
                <td>/v1/actuator/resources</td>
                <td></td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    
      
      <div class="file-heading">
        <h2 id="v1/anomaly_service.proto">v1/anomaly_service.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.Anomaly">Anomaly</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>resource</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The resource that is the target of the operation.
Format:
- Instance: instnaces/{instance}
- Database: instnaces/{instance}/databases/{database} </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.v1.Anomaly.AnomalyType">Anomaly.AnomalyType</a></td>
                  <td></td>
                  <td><p>type is the type of the anomaly. </p></td>
                </tr>
              
                <tr>
                  <td>severity</td>
                  <td><a href="#bytebase.v1.Anomaly.AnomalySeverity">Anomaly.AnomalySeverity</a></td>
                  <td></td>
                  <td><p>severity is the severity of the anomaly. </p></td>
                </tr>
              
                <tr>
                  <td>instance_connection_detail</td>
                  <td><a href="#bytebase.v1.Anomaly.InstanceConnectionDetail">Anomaly.InstanceConnectionDetail</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>database_connection_detail</td>
                  <td><a href="#bytebase.v1.Anomaly.DatabaseConnectionDetail">Anomaly.DatabaseConnectionDetail</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>database_schema_drift_detail</td>
                  <td><a href="#bytebase.v1.Anomaly.DatabaseSchemaDriftDetail">Anomaly.DatabaseSchemaDriftDetail</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>create_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>update_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Anomaly.DatabaseConnectionDetail">Anomaly.DatabaseConnectionDetail</h3>
        <p>Database level anomaly detial.</p><p>DatbaaseConnectionDetail is the detail for database connection anomaly.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>detail</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>detail is the detail of the database connection failure. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Anomaly.DatabaseSchemaDriftDetail">Anomaly.DatabaseSchemaDriftDetail</h3>
        <p>DatabaseSchemaDriftDetail is the detail for database schema drift anomaly.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>record_version</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>record_version is the record version of the database schema drift. </p></td>
                </tr>
              
                <tr>
                  <td>expected_schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>expected_schema is the expected schema in the database. </p></td>
                </tr>
              
                <tr>
                  <td>actual_schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>actual_schema is the actual schema in the database. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Anomaly.InstanceConnectionDetail">Anomaly.InstanceConnectionDetail</h3>
        <p>Instance level anomaly detail.</p><p>InstanceConnectionDetail is the detail for instance connection anomaly.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>detail</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>detail is the detail of the instance connection failure. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SearchAnomaliesRequest">SearchAnomaliesRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>filter</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>filter is the filter to apply on the search anomaly request,
follow the [ebnf](https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_form) syntax.
Only support filter by resource and type for now.
For example:
Search the anomalies of a specific resource: &#39;resource=&#34;instances/{instance}&#34;.&#39;
Search the specified types of anomalies: &#39;type=&#34;MIGRATION_SCHEMA&#34;.&#39; </p></td>
                </tr>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>Not used. The maximum number of anomalies to return. The service may return fewer than
this value.
If unspecified, at most 50 anomalies will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Not used. A page token, received from a previous `SearchAnomalies` call.
Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to `SearchAnomalies` must match
the call that provided the page token. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SearchAnomaliesResponse">SearchAnomaliesResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>anomalies</td>
                  <td><a href="#bytebase.v1.Anomaly">Anomaly</a></td>
                  <td>repeated</td>
                  <td><p>anomalies is the list of anomalies. </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Not used. A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.v1.Anomaly.AnomalySeverity">Anomaly.AnomalySeverity</h3>
        <p>AnomalySeverity is the severity of the anomaly.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>ANOMALY_SEVERITY_UNSPECIFIED</td>
                <td>0</td>
                <td><p>Unspecified anomaly severity.</p></td>
              </tr>
            
              <tr>
                <td>MEDIUM</td>
                <td>1</td>
                <td><p>MEDIUM is the info level anomaly severity.</p></td>
              </tr>
            
              <tr>
                <td>HIGH</td>
                <td>2</td>
                <td><p>HIGH is the warning level anomaly severity.</p></td>
              </tr>
            
              <tr>
                <td>CRITICAL</td>
                <td>3</td>
                <td><p>CRITICAL is the critical level anomaly severity.</p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.Anomaly.AnomalyType">Anomaly.AnomalyType</h3>
        <p>AnomalyType is the type of the anomaly.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>ANOMALY_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p>Unspecified anomaly type.</p></td>
              </tr>
            
              <tr>
                <td>INSTANCE_CONNECTION</td>
                <td>1</td>
                <td><p>Instance level anomaly.

INSTANCE_CONNECTION is the anomaly type for instance connection, e.g. the instance is down.</p></td>
              </tr>
            
              <tr>
                <td>MIGRATION_SCHEMA</td>
                <td>2</td>
                <td><p>MIGRATION_SCHEMA is the anomaly type for migration schema, e.g. the migration schema in the instance is missing.</p></td>
              </tr>
            
              <tr>
                <td>DATABASE_CONNECTION</td>
                <td>5</td>
                <td><p>Database level anomaly.

DATABASE_CONNECTION is the anomaly type for database connection, e.g. the database had been deleted.</p></td>
              </tr>
            
              <tr>
                <td>DATABASE_SCHEMA_DRIFT</td>
                <td>6</td>
                <td><p>DATABASE_SCHEMA_DRIFT is the anomaly type for database schema drift,
e.g. the database schema had been changed without bytebase migration.</p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
        <h3 id="bytebase.v1.AnomalyService">AnomalyService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>SearchAnomalies</td>
                <td><a href="#bytebase.v1.SearchAnomaliesRequest">SearchAnomaliesRequest</a></td>
                <td><a href="#bytebase.v1.SearchAnomaliesResponse">SearchAnomaliesResponse</a></td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>SearchAnomalies</td>
                <td>POST</td>
                <td>/v1/anomalies:search</td>
                <td>*</td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    
      
      <div class="file-heading">
        <h2 id="v1/common.proto">v1/common.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.Position">Position</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>line</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>column</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Range">Range</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>start</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>end</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.v1.Engine">Engine</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>ENGINE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CLICKHOUSE</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MYSQL</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>POSTGRES</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SNOWFLAKE</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SQLITE</td>
                <td>5</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TIDB</td>
                <td>6</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MONGODB</td>
                <td>7</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>REDIS</td>
                <td>8</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ORACLE</td>
                <td>9</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SPANNER</td>
                <td>10</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MSSQL</td>
                <td>11</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>REDSHIFT</td>
                <td>12</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MARIADB</td>
                <td>13</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>OCEANBASE</td>
                <td>14</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DM</td>
                <td>15</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>RISINGWAVE</td>
                <td>16</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>OCEANBASE_ORACLE</td>
                <td>17</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STARROCKS</td>
                <td>18</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DORIS</td>
                <td>19</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>HIVE</td>
                <td>20</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ELASTICSEARCH</td>
                <td>21</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>BIGQUERY</td>
                <td>22</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DYNAMODB</td>
                <td>23</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DATABRICKS</td>
                <td>24</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.ExportFormat">ExportFormat</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>FORMAT_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CSV</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>JSON</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SQL</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>XLSX</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.MaskingLevel">MaskingLevel</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>MASKING_LEVEL_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>NONE</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PARTIAL</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>FULL</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.State">State</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>STATE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ACTIVE</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DELETED</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.VCSType">VCSType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>VCS_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>GITHUB</td>
                <td>1</td>
                <td><p>GitHub type. Using for GitHub community edition(ce).</p></td>
              </tr>
            
              <tr>
                <td>GITLAB</td>
                <td>2</td>
                <td><p>GitLab type. Using for GitLab community edition(ce) and enterprise edition(ee).</p></td>
              </tr>
            
              <tr>
                <td>BITBUCKET</td>
                <td>3</td>
                <td><p>BitBucket type. Using for BitBucket cloud or BitBucket server.</p></td>
              </tr>
            
              <tr>
                <td>AZURE_DEVOPS</td>
                <td>4</td>
                <td><p>Azure DevOps. Using for Azure DevOps GitOps workflow.</p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="v1/iam_policy.proto">v1/iam_policy.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.Binding">Binding</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>role</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The role that is assigned to the members.
Format: roles/{role} </p></td>
                </tr>
              
                <tr>
                  <td>members</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>Specifies the principals requesting access for a Bytebase resource.
For users, the member should be: user:{email}
For groups, the member should be: group:{email} </p></td>
                </tr>
              
                <tr>
                  <td>condition</td>
                  <td><a href="#google.type.Expr">google.type.Expr</a></td>
                  <td></td>
                  <td><p>The condition that is associated with this binding.
If the condition evaluates to true, then this binding applies to the current request.
If the condition evaluates to false, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. </p></td>
                </tr>
              
                <tr>
                  <td>parsed_expr</td>
                  <td><a href="#google.api.expr.v1alpha1.ParsedExpr">google.api.expr.v1alpha1.ParsedExpr</a></td>
                  <td></td>
                  <td><p>The parsed expression of the condition. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.BindingDelta">BindingDelta</h3>
        <p>One delta entry for Binding. Each individual change (only one member in each</p><p>entry) to a binding will be a separate entry.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>action</td>
                  <td><a href="#bytebase.v1.BindingDelta.Action">BindingDelta.Action</a></td>
                  <td></td>
                  <td><p>The action that was performed on a Binding. </p></td>
                </tr>
              
                <tr>
                  <td>role</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Role that is assigned to `members`.
For example, `roles/projectOwner`. </p></td>
                </tr>
              
                <tr>
                  <td>member</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Follows the same format of Binding.members. </p></td>
                </tr>
              
                <tr>
                  <td>condition</td>
                  <td><a href="#google.type.Expr">google.type.Expr</a></td>
                  <td></td>
                  <td><p>The condition that is associated with this binding. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GetIamPolicyRequest">GetIamPolicyRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>resource</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the resource to get the IAM policy.
Format: projects/{project}
Format: workspaces/{workspace} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.IamPolicy">IamPolicy</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>bindings</td>
                  <td><a href="#bytebase.v1.Binding">Binding</a></td>
                  <td>repeated</td>
                  <td><p>Collection of binding.
A binding binds one or more project members to a single project role. </p></td>
                </tr>
              
                <tr>
                  <td>etag</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The current etag of the policy.
If an etag is provided and does not match the current etag of the poliy,
the call will be blocked and an ABORTED error will be returned. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.PolicyDelta">PolicyDelta</h3>
        <p>The difference delta between two policies.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>binding_deltas</td>
                  <td><a href="#bytebase.v1.BindingDelta">BindingDelta</a></td>
                  <td>repeated</td>
                  <td><p>The delta for Bindings between two policies. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SetIamPolicyRequest">SetIamPolicyRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>resource</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the resource to set the IAM policy.
Format: projects/{project}
Format: workspaces/{workspace} </p></td>
                </tr>
              
                <tr>
                  <td>policy</td>
                  <td><a href="#bytebase.v1.IamPolicy">IamPolicy</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>etag</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The current etag of the policy. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.v1.BindingDelta.Action">BindingDelta.Action</h3>
        <p>The type of action performed on a Binding in a policy.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>ACTION_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ADD</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>REMOVE</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="v1/audit_log_service.proto">v1/audit_log_service.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.AuditData">AuditData</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>policy_delta</td>
                  <td><a href="#bytebase.v1.PolicyDelta">PolicyDelta</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.AuditLog">AuditLog</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the log.
Formats:
- projects/{project}/auditLogs/{uid}
- workspaces/{workspace}/auditLogs/{uid} </p></td>
                </tr>
              
                <tr>
                  <td>create_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>user</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: users/d@d.com </p></td>
                </tr>
              
                <tr>
                  <td>method</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>e.g. `/bytebase.v1.SQLService/Query`, `bb.project.repository.push` </p></td>
                </tr>
              
                <tr>
                  <td>severity</td>
                  <td><a href="#bytebase.v1.AuditLog.Severity">AuditLog.Severity</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>resource</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The associated resource. </p></td>
                </tr>
              
                <tr>
                  <td>request</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>JSON-encoded request. </p></td>
                </tr>
              
                <tr>
                  <td>response</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>JSON-encoded response.
Some fields are omitted because they are too large or contain sensitive information. </p></td>
                </tr>
              
                <tr>
                  <td>status</td>
                  <td><a href="#google.rpc.Status">google.rpc.Status</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>service_data</td>
                  <td><a href="#google.protobuf.Any">google.protobuf.Any</a></td>
                  <td></td>
                  <td><p>service-specific data about the request, response, and other activities. </p></td>
                </tr>
              
                <tr>
                  <td>request_metadata</td>
                  <td><a href="#bytebase.v1.RequestMetadata">RequestMetadata</a></td>
                  <td></td>
                  <td><p>Metadata about the operation. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ExportAuditLogsRequest">ExportAuditLogsRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>filter</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The filter of the log. It should be a valid CEL expression.
For example:
 - filter = &#34;method == &#39;/bytebase.v1.SQLService/Query&#39;&#34;
 - filter = &#34;method == &#39;/bytebase.v1.SQLService/Query&#39; &amp;&amp; severity == &#39;ERROR&#39;&#34;
 - filter = &#34;method == &#39;/bytebase.v1.SQLService/Query&#39; &amp;&amp; severity == &#39;ERROR&#39; &amp;&amp; user == &#39;users/bb@bytebase.com&#39;&#34;
 - filter = &#34;method == &#39;/bytebase.v1.SQLService/Query&#39; &amp;&amp; severity == &#39;ERROR&#39; &amp;&amp; create_time &lt;= &#39;2021-01-01T00:00:00Z&#39; &amp;&amp; create_time &gt;= &#39;2020-01-01T00:00:00Z&#39;&#34; </p></td>
                </tr>
              
                <tr>
                  <td>order_by</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The order by of the log.
Only support order by create_time.
For example:
 - order_by = &#34;create_time asc&#34;
 - order_by = &#34;create_time desc&#34; </p></td>
                </tr>
              
                <tr>
                  <td>format</td>
                  <td><a href="#bytebase.v1.ExportFormat">ExportFormat</a></td>
                  <td></td>
                  <td><p>The export format. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ExportAuditLogsResponse">ExportAuditLogsResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>content</td>
                  <td><a href="#bytes">bytes</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.RequestMetadata">RequestMetadata</h3>
        <p>Metadata about the request.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>caller_ip</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The IP address of the caller. </p></td>
                </tr>
              
                <tr>
                  <td>caller_supplied_user_agent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The user agent of the caller.
This information is not authenticated and should be treated accordingly. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SearchAuditLogsRequest">SearchAuditLogsRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>filter</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The filter of the log. It should be a valid CEL expression.
For example:
 - filter = &#34;method == &#39;/bytebase.v1.SQLService/Query&#39;&#34;
 - filter = &#34;method == &#39;/bytebase.v1.SQLService/Query&#39; &amp;&amp; severity == &#39;ERROR&#39;&#34;
 - filter = &#34;method == &#39;/bytebase.v1.SQLService/Query&#39; &amp;&amp; severity == &#39;ERROR&#39; &amp;&amp; user == &#39;users/bb@bytebase.com&#39;&#34;
 - filter = &#34;method == &#39;/bytebase.v1.SQLService/Query&#39; &amp;&amp; severity == &#39;ERROR&#39; &amp;&amp; create_time &lt;= &#39;2021-01-01T00:00:00Z&#39; &amp;&amp; create_time &gt;= &#39;2020-01-01T00:00:00Z&#39;&#34; </p></td>
                </tr>
              
                <tr>
                  <td>order_by</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The order by of the log.
Only support order by create_time.
For example:
 - order_by = &#34;create_time asc&#34;
 - order_by = &#34;create_time desc&#34; </p></td>
                </tr>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of logs to return.
The service may return fewer than this value.
If unspecified, at most 100 log entries will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A page token, received from a previous `SearchLogs` call.
Provide this to retrieve the subsequent page. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SearchAuditLogsResponse">SearchAuditLogsResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>audit_logs</td>
                  <td><a href="#bytebase.v1.AuditLog">AuditLog</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A token to retrieve next page of log entities.
Pass this value in the page_token field in the subsequent call
to retrieve the next page of log entities. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.v1.AuditLog.Severity">AuditLog.Severity</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>DEFAULT</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DEBUG</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>INFO</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>NOTICE</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>WARNING</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ERROR</td>
                <td>5</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CRITICAL</td>
                <td>6</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ALERT</td>
                <td>7</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>EMERGENCY</td>
                <td>8</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
        <h3 id="bytebase.v1.AuditLogService">AuditLogService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>SearchAuditLogs</td>
                <td><a href="#bytebase.v1.SearchAuditLogsRequest">SearchAuditLogsRequest</a></td>
                <td><a href="#bytebase.v1.SearchAuditLogsResponse">SearchAuditLogsResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ExportAuditLogs</td>
                <td><a href="#bytebase.v1.ExportAuditLogsRequest">ExportAuditLogsRequest</a></td>
                <td><a href="#bytebase.v1.ExportAuditLogsResponse">ExportAuditLogsResponse</a></td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>SearchAuditLogs</td>
                <td>POST</td>
                <td>/v1/{parent=projects/*}/auditLogs:search</td>
                <td>*</td>
              </tr>
              
              <tr>
                <td>SearchAuditLogs</td>
                <td>POST</td>
                <td>/v1/auditLogs:search</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>ExportAuditLogs</td>
                <td>POST</td>
                <td>/v1/{parent=projects/*}/auditLogs:export</td>
                <td>*</td>
              </tr>
              
              <tr>
                <td>ExportAuditLogs</td>
                <td>POST</td>
                <td>/v1/auditLogs:export</td>
                <td>*</td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    
      
      <div class="file-heading">
        <h2 id="v1/auth_service.proto">v1/auth_service.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.CreateUserRequest">CreateUserRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>user</td>
                  <td><a href="#bytebase.v1.User">User</a></td>
                  <td></td>
                  <td><p>The user to create. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DeleteUserRequest">DeleteUserRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the user to delete.
Format: users/{user} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GetUserRequest">GetUserRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the user to retrieve.
Format: users/{user uid or user email} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.IdentityProviderContext">IdentityProviderContext</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>oauth2_context</td>
                  <td><a href="#bytebase.v1.OAuth2IdentityProviderContext">OAuth2IdentityProviderContext</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>oidc_context</td>
                  <td><a href="#bytebase.v1.OIDCIdentityProviderContext">OIDCIdentityProviderContext</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListUsersRequest">ListUsersRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of users to return. The service may return fewer than
this value.
If unspecified, at most 50 users will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A page token, received from a previous `ListUsers` call.
Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to `ListUsers` must match
the call that provided the page token. </p></td>
                </tr>
              
                <tr>
                  <td>show_deleted</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Show deleted users if specified. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListUsersResponse">ListUsersResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>users</td>
                  <td><a href="#bytebase.v1.User">User</a></td>
                  <td>repeated</td>
                  <td><p>The users from the specified request. </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.LoginRequest">LoginRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>email</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>password</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>web</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>If web is set, we will set access token, refresh token, and user to the cookie. </p></td>
                </tr>
              
                <tr>
                  <td>idp_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the identity provider.
Format: idps/{idp} </p></td>
                </tr>
              
                <tr>
                  <td>idp_context</td>
                  <td><a href="#bytebase.v1.IdentityProviderContext">IdentityProviderContext</a></td>
                  <td></td>
                  <td><p>The idp_context is using to get the user information from identity provider. </p></td>
                </tr>
              
                <tr>
                  <td>otp_code</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p>The otp_code is used to verify the user&#39;s identity by MFA. </p></td>
                </tr>
              
                <tr>
                  <td>recovery_code</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p>The recovery_code is used to recovery the user&#39;s identity with MFA. </p></td>
                </tr>
              
                <tr>
                  <td>mfa_temp_token</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p>The mfa_temp_token is used to verify the user&#39;s identity by MFA. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.LoginResponse">LoginResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>mfa_temp_token</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.LogoutRequest">LogoutRequest</h3>
        <p></p>

        

        
      
        <h3 id="bytebase.v1.OAuth2IdentityProviderContext">OAuth2IdentityProviderContext</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>code</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.OIDCIdentityProviderContext">OIDCIdentityProviderContext</h3>
        <p></p>

        

        
      
        <h3 id="bytebase.v1.UndeleteUserRequest">UndeleteUserRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the deleted user.
Format: users/{user} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdateUserRequest">UpdateUserRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>user</td>
                  <td><a href="#bytebase.v1.User">User</a></td>
                  <td></td>
                  <td><p>The user to update.

The user&#39;s `name` field is used to identify the user to update.
Format: users/{user} </p></td>
                </tr>
              
                <tr>
                  <td>update_mask</td>
                  <td><a href="#google.protobuf.FieldMask">google.protobuf.FieldMask</a></td>
                  <td></td>
                  <td><p>The list of fields to update. </p></td>
                </tr>
              
                <tr>
                  <td>otp_code</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p>The otp_code is used to verify the user&#39;s identity by MFA. </p></td>
                </tr>
              
                <tr>
                  <td>regenerate_temp_mfa_secret</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>The regenerate_temp_mfa_secret flag means to regenerate temporary MFA secret for user.
This is used for MFA setup. The temporary MFA secret and recovery codes will be returned in the response. </p></td>
                </tr>
              
                <tr>
                  <td>regenerate_recovery_codes</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>The regenerate_recovery_codes flag means to regenerate recovery codes for user. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.User">User</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the user.
Format: users/{user}. {user} is a system-generated unique ID. </p></td>
                </tr>
              
                <tr>
                  <td>state</td>
                  <td><a href="#bytebase.v1.State">State</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>email</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>user_type</td>
                  <td><a href="#bytebase.v1.UserType">UserType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>password</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>service_key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>mfa_enabled</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>The mfa_enabled flag means if the user has enabled MFA. </p></td>
                </tr>
              
                <tr>
                  <td>mfa_secret</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The mfa_secret is the temporary secret using in two phase verification. </p></td>
                </tr>
              
                <tr>
                  <td>recovery_codes</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The recovery_codes is the temporary recovery codes using in two phase verification. </p></td>
                </tr>
              
                <tr>
                  <td>phone</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Should be a valid E.164 compliant phone number.
Could be empty. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.v1.UserType">UserType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>USER_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>USER</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SYSTEM_BOT</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SERVICE_ACCOUNT</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
        <h3 id="bytebase.v1.AuthService">AuthService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>GetUser</td>
                <td><a href="#bytebase.v1.GetUserRequest">GetUserRequest</a></td>
                <td><a href="#bytebase.v1.User">User</a></td>
                <td><p>Get the user.
Any authenticated user can get the user.</p></td>
              </tr>
            
              <tr>
                <td>ListUsers</td>
                <td><a href="#bytebase.v1.ListUsersRequest">ListUsersRequest</a></td>
                <td><a href="#bytebase.v1.ListUsersResponse">ListUsersResponse</a></td>
                <td><p>List all users.
Any authenticated user can list users.</p></td>
              </tr>
            
              <tr>
                <td>CreateUser</td>
                <td><a href="#bytebase.v1.CreateUserRequest">CreateUserRequest</a></td>
                <td><a href="#bytebase.v1.User">User</a></td>
                <td><p>Create a user.
When Disallow Signup is enabled, only the caller with bb.users.create on the workspace can create a user.
Otherwise, any unauthenticated user can create a user.</p></td>
              </tr>
            
              <tr>
                <td>UpdateUser</td>
                <td><a href="#bytebase.v1.UpdateUserRequest">UpdateUserRequest</a></td>
                <td><a href="#bytebase.v1.User">User</a></td>
                <td><p>Only the user itself and the user with bb.users.update permission on the workspace can update the user.</p></td>
              </tr>
            
              <tr>
                <td>DeleteUser</td>
                <td><a href="#bytebase.v1.DeleteUserRequest">DeleteUserRequest</a></td>
                <td><a href="#google.protobuf.Empty">.google.protobuf.Empty</a></td>
                <td><p>Only the user with bb.users.delete permission on the workspace can delete the user.
The last remaining workspace admin cannot be deleted.</p></td>
              </tr>
            
              <tr>
                <td>UndeleteUser</td>
                <td><a href="#bytebase.v1.UndeleteUserRequest">UndeleteUserRequest</a></td>
                <td><a href="#bytebase.v1.User">User</a></td>
                <td><p>Only the user with bb.users.undelete permission on the workspace can undelete the user.</p></td>
              </tr>
            
              <tr>
                <td>Login</td>
                <td><a href="#bytebase.v1.LoginRequest">LoginRequest</a></td>
                <td><a href="#bytebase.v1.LoginResponse">LoginResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>Logout</td>
                <td><a href="#bytebase.v1.LogoutRequest">LogoutRequest</a></td>
                <td><a href="#google.protobuf.Empty">.google.protobuf.Empty</a></td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>GetUser</td>
                <td>GET</td>
                <td>/v1/{name=users/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>ListUsers</td>
                <td>GET</td>
                <td>/v1/users</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>CreateUser</td>
                <td>POST</td>
                <td>/v1/users</td>
                <td>user</td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdateUser</td>
                <td>PATCH</td>
                <td>/v1/{user.name=users/*}</td>
                <td>user</td>
              </tr>
              
            
              
              
              <tr>
                <td>DeleteUser</td>
                <td>DELETE</td>
                <td>/v1/{name=users/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>UndeleteUser</td>
                <td>POST</td>
                <td>/v1/{name=users/*}:undelete</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>Login</td>
                <td>POST</td>
                <td>/v1/auth/login</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>Logout</td>
                <td>POST</td>
                <td>/v1/auth/logout</td>
                <td>*</td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    
      
      <div class="file-heading">
        <h2 id="v1/instance_role_service.proto">v1/instance_role_service.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.GetInstanceRoleRequest">GetInstanceRoleRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the role to retrieve.
Format: instances/{instance}/roles/{role name}
The role name is the unique name for the role. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.InstanceRole">InstanceRole</h3>
        <p>InstanceRole is the API message for instance role.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the role.
Format: instances/{instance}/roles/{role}
The role name is the unique name for the role. </p></td>
                </tr>
              
                <tr>
                  <td>role_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The role name. It&#39;s unique within the instance. </p></td>
                </tr>
              
                <tr>
                  <td>password</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p>The role password. </p></td>
                </tr>
              
                <tr>
                  <td>connection_limit</td>
                  <td><a href="#int32">int32</a></td>
                  <td>optional</td>
                  <td><p>The connection count limit for this role. </p></td>
                </tr>
              
                <tr>
                  <td>valid_until</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p>The expiration for the role&#39;s password. </p></td>
                </tr>
              
                <tr>
                  <td>attribute</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p>The role attribute.
For PostgreSQL, it containt super_user, no_inherit, create_role, create_db, can_login, replication and bypass_rls. Docs: https://www.postgresql.org/docs/current/role-attributes.html
For MySQL, it&#39;s the global privileges as GRANT statements, which means it only contains &#34;GRANT ... ON *.* TO ...&#34;. Docs: https://dev.mysql.com/doc/refman/8.0/en/grant.html </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListInstanceRolesRequest">ListInstanceRolesRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The parent, which owns this collection of roles.
Format: instances/{instance} </p></td>
                </tr>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of roles to return. The service may return fewer than
this value.
If unspecified, at most 50 roles will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A page token, received from a previous `ListRoles` call.
Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to `ListRoles` must match
the call that provided the page token. </p></td>
                </tr>
              
                <tr>
                  <td>refresh</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Refresh will refresh and return the latest data. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListInstanceRolesResponse">ListInstanceRolesResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>roles</td>
                  <td><a href="#bytebase.v1.InstanceRole">InstanceRole</a></td>
                  <td>repeated</td>
                  <td><p>The roles from the specified request. </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
        <h3 id="bytebase.v1.InstanceRoleService">InstanceRoleService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>GetInstanceRole</td>
                <td><a href="#bytebase.v1.GetInstanceRoleRequest">GetInstanceRoleRequest</a></td>
                <td><a href="#bytebase.v1.InstanceRole">InstanceRole</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ListInstanceRoles</td>
                <td><a href="#bytebase.v1.ListInstanceRolesRequest">ListInstanceRolesRequest</a></td>
                <td><a href="#bytebase.v1.ListInstanceRolesResponse">ListInstanceRolesResponse</a></td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>GetInstanceRole</td>
                <td>GET</td>
                <td>/v1/{name=instances/*/roles/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>ListInstanceRoles</td>
                <td>GET</td>
                <td>/v1/{parent=instances/*}/roles</td>
                <td></td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    
      
      <div class="file-heading">
        <h2 id="v1/instance_service.proto">v1/instance_service.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.AddDataSourceRequest">AddDataSourceRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the instance to add a data source to.
Format: instances/{instance} </p></td>
                </tr>
              
                <tr>
                  <td>data_source</td>
                  <td><a href="#bytebase.v1.DataSource">DataSource</a></td>
                  <td></td>
                  <td><p>Identified by data source ID.
Only READ_ONLY data source can be added. </p></td>
                </tr>
              
                <tr>
                  <td>validate_only</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Validate only also tests the data source connection. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.BatchSyncInstancesRequest">BatchSyncInstancesRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>requests</td>
                  <td><a href="#bytebase.v1.SyncInstanceRequest">SyncInstanceRequest</a></td>
                  <td>repeated</td>
                  <td><p>The request message specifying the instances to sync.
A maximum of 1000 instances can be synced in a batch. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.BatchSyncInstancesResponse">BatchSyncInstancesResponse</h3>
        <p></p>

        

        
      
        <h3 id="bytebase.v1.CreateInstanceRequest">CreateInstanceRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>instance</td>
                  <td><a href="#bytebase.v1.Instance">Instance</a></td>
                  <td></td>
                  <td><p>The instance to create. </p></td>
                </tr>
              
                <tr>
                  <td>instance_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The ID to use for the instance, which will become the final component of
the instance&#39;s resource name.

This value should be 4-63 characters, and valid characters
are /[a-z][0-9]-/. </p></td>
                </tr>
              
                <tr>
                  <td>validate_only</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Validate only also tests the data source connection. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DataSource">DataSource</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.v1.DataSourceType">DataSourceType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>username</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>password</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>use_ssl</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Use SSL to connect to the data source. By default, we use system default SSL configuration. </p></td>
                </tr>
              
                <tr>
                  <td>ssl_ca</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>ssl_cert</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>ssl_key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>host</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>port</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>database</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>srv</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>srv, authentication_database and replica_set are used for MongoDB. </p></td>
                </tr>
              
                <tr>
                  <td>authentication_database</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>sid</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>sid and service_name are used for Oracle. </p></td>
                </tr>
              
                <tr>
                  <td>service_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>ssh_host</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Connection over SSH.
The hostname of the SSH server agent.
Required. </p></td>
                </tr>
              
                <tr>
                  <td>ssh_port</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The port of the SSH server agent. It&#39;s 22 typically.
Required. </p></td>
                </tr>
              
                <tr>
                  <td>ssh_user</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The user to login the server.
Required. </p></td>
                </tr>
              
                <tr>
                  <td>ssh_password</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The password to login the server. If it&#39;s empty string, no password is required. </p></td>
                </tr>
              
                <tr>
                  <td>ssh_private_key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The private key to login the server. If it&#39;s empty string, we will use the system default private key from os.Getenv(&#34;SSH_AUTH_SOCK&#34;). </p></td>
                </tr>
              
                <tr>
                  <td>authentication_private_key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>PKCS#8 private key in PEM format. If it&#39;s empty string, no private key is required.
Used for authentication when connecting to the data source. </p></td>
                </tr>
              
                <tr>
                  <td>external_secret</td>
                  <td><a href="#bytebase.v1.DataSourceExternalSecret">DataSourceExternalSecret</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>authentication_type</td>
                  <td><a href="#bytebase.v1.DataSource.AuthenticationType">DataSource.AuthenticationType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>sasl_config</td>
                  <td><a href="#bytebase.v1.SASLConfig">SASLConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>additional_addresses</td>
                  <td><a href="#bytebase.v1.DataSource.Address">DataSource.Address</a></td>
                  <td>repeated</td>
                  <td><p>additional_addresses is used for MongoDB replica set. </p></td>
                </tr>
              
                <tr>
                  <td>replica_set</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>replica_set is used for MongoDB replica set. </p></td>
                </tr>
              
                <tr>
                  <td>direct_connection</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>direct_connection is used for MongoDB to dispatch all the operations to the node specified in the connection string. </p></td>
                </tr>
              
                <tr>
                  <td>region</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>region is the location of where the DB is, works for AWS RDS. For example, us-east-1. </p></td>
                </tr>
              
                <tr>
                  <td>account_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>account_id is used by Databricks. </p></td>
                </tr>
              
                <tr>
                  <td>warehouse_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>warehouse_id is used by Databricks. </p></td>
                </tr>
              
                <tr>
                  <td>master_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>master_name is the master name used by connecting redis-master via redis sentinel. </p></td>
                </tr>
              
                <tr>
                  <td>master_username</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>master_username and master_password are master credentials used by redis sentinel mode. </p></td>
                </tr>
              
                <tr>
                  <td>master_password</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>redis_type</td>
                  <td><a href="#bytebase.v1.DataSource.RedisType">DataSource.RedisType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DataSource.Address">DataSource.Address</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>host</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>port</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DataSourceExternalSecret">DataSourceExternalSecret</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>secret_type</td>
                  <td><a href="#bytebase.v1.DataSourceExternalSecret.SecretType">DataSourceExternalSecret.SecretType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>auth_type</td>
                  <td><a href="#bytebase.v1.DataSourceExternalSecret.AuthType">DataSourceExternalSecret.AuthType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>app_role</td>
                  <td><a href="#bytebase.v1.DataSourceExternalSecret.AppRoleAuthOption">DataSourceExternalSecret.AppRoleAuthOption</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>engine_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>engine name is the name for secret engine. </p></td>
                </tr>
              
                <tr>
                  <td>secret_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>the secret name in the engine to store the password. </p></td>
                </tr>
              
                <tr>
                  <td>password_key_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>the key name for the password. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DataSourceExternalSecret.AppRoleAuthOption">DataSourceExternalSecret.AppRoleAuthOption</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>role_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>secret_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>the secret id for the role without ttl. </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.v1.DataSourceExternalSecret.AppRoleAuthOption.SecretType">DataSourceExternalSecret.AppRoleAuthOption.SecretType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>mount_path</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The path where the approle auth method is mounted. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DeleteInstanceRequest">DeleteInstanceRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the instance to delete.
Format: instances/{instance} </p></td>
                </tr>
              
                <tr>
                  <td>force</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>If set to true, any databases and sheets from this project will also be moved to default project, and all open issues will be closed. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GetInstanceRequest">GetInstanceRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the instance to retrieve.
Format: instances/{instance} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Instance">Instance</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the instance.
Format: instances/{instance} </p></td>
                </tr>
              
                <tr>
                  <td>state</td>
                  <td><a href="#bytebase.v1.State">State</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>engine</td>
                  <td><a href="#bytebase.v1.Engine">Engine</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>engine_version</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>external_link</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>data_sources</td>
                  <td><a href="#bytebase.v1.DataSource">DataSource</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>environment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The environment resource.
Format: environments/prod where prod is the environment resource ID. </p></td>
                </tr>
              
                <tr>
                  <td>activation</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>options</td>
                  <td><a href="#bytebase.v1.InstanceOptions">InstanceOptions</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>roles</td>
                  <td><a href="#bytebase.v1.InstanceRole">InstanceRole</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.InstanceOptions">InstanceOptions</h3>
        <p>InstanceOptions is the option for instances.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>sync_interval</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p>How often the instance is synced. </p></td>
                </tr>
              
                <tr>
                  <td>maximum_connections</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of connections.
The default is 10 if the value is unset or zero. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.InstanceResource">InstanceResource</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>engine</td>
                  <td><a href="#bytebase.v1.Engine">Engine</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>engine_version</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>data_sources</td>
                  <td><a href="#bytebase.v1.DataSource">DataSource</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>activation</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the instance.
Format: instances/{instance} </p></td>
                </tr>
              
                <tr>
                  <td>environment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The environment resource.
Format: environments/prod where prod is the environment resource ID. </p></td>
                </tr>
              
                <tr>
                  <td>roles</td>
                  <td><a href="#bytebase.v1.InstanceRole">InstanceRole</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.KerberosConfig">KerberosConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>primary</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>instance</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>realm</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>keytab</td>
                  <td><a href="#bytes">bytes</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>kdc_host</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>kdc_port</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>kdc_transport_protocol</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListInstancesRequest">ListInstancesRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of instances to return. The service may return fewer than
this value.
If unspecified, at most 50 instances will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A page token, received from a previous `ListInstances` call.
Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to `ListInstances` must match
the call that provided the page token. </p></td>
                </tr>
              
                <tr>
                  <td>show_deleted</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Show deleted instances if specified. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListInstancesResponse">ListInstancesResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>instances</td>
                  <td><a href="#bytebase.v1.Instance">Instance</a></td>
                  <td>repeated</td>
                  <td><p>The instances from the specified request. </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.RemoveDataSourceRequest">RemoveDataSourceRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the instance to remove a data source from.
Format: instances/{instance} </p></td>
                </tr>
              
                <tr>
                  <td>data_source</td>
                  <td><a href="#bytebase.v1.DataSource">DataSource</a></td>
                  <td></td>
                  <td><p>Identified by data source ID.
Only READ_ONLY data source can be removed. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SASLConfig">SASLConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>krb_config</td>
                  <td><a href="#bytebase.v1.KerberosConfig">KerberosConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SyncInstanceRequest">SyncInstanceRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of instance.
Format: instances/{instance} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SyncInstanceResponse">SyncInstanceResponse</h3>
        <p></p>

        

        
      
        <h3 id="bytebase.v1.SyncSlowQueriesRequest">SyncSlowQueriesRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the instance to sync slow queries.
Format: instances/{instance} for one instance
     or projects/{project} for one project. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UndeleteInstanceRequest">UndeleteInstanceRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the deleted instance.
Format: instances/{instance} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdateDataSourceRequest">UpdateDataSourceRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the instance to update a data source.
Format: instances/{instance} </p></td>
                </tr>
              
                <tr>
                  <td>data_source</td>
                  <td><a href="#bytebase.v1.DataSource">DataSource</a></td>
                  <td></td>
                  <td><p>Identified by data source ID. </p></td>
                </tr>
              
                <tr>
                  <td>update_mask</td>
                  <td><a href="#google.protobuf.FieldMask">google.protobuf.FieldMask</a></td>
                  <td></td>
                  <td><p>The list of fields to update. </p></td>
                </tr>
              
                <tr>
                  <td>validate_only</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Validate only also tests the data source connection. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdateInstanceRequest">UpdateInstanceRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>instance</td>
                  <td><a href="#bytebase.v1.Instance">Instance</a></td>
                  <td></td>
                  <td><p>The instance to update.

The instance&#39;s `name` field is used to identify the instance to update.
Format: instances/{instance} </p></td>
                </tr>
              
                <tr>
                  <td>update_mask</td>
                  <td><a href="#google.protobuf.FieldMask">google.protobuf.FieldMask</a></td>
                  <td></td>
                  <td><p>The list of fields to update. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.v1.DataSource.AuthenticationType">DataSource.AuthenticationType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>AUTHENTICATION_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PASSWORD</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>GOOGLE_CLOUD_SQL_IAM</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>AWS_RDS_IAM</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.DataSource.RedisType">DataSource.RedisType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>REDIS_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STANDALONE</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SENTINEL</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CLUSTER</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.DataSourceExternalSecret.AppRoleAuthOption.SecretType">DataSourceExternalSecret.AppRoleAuthOption.SecretType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>SECRET_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PLAIN</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ENVIRONMENT</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.DataSourceExternalSecret.AuthType">DataSourceExternalSecret.AuthType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>AUTH_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TOKEN</td>
                <td>1</td>
                <td><p>ref: https://developer.hashicorp.com/vault/docs/auth/token</p></td>
              </tr>
            
              <tr>
                <td>VAULT_APP_ROLE</td>
                <td>2</td>
                <td><p>ref: https://developer.hashicorp.com/vault/docs/auth/approle</p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.DataSourceExternalSecret.SecretType">DataSourceExternalSecret.SecretType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>SAECRET_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>VAULT_KV_V2</td>
                <td>1</td>
                <td><p>ref: https://developer.hashicorp.com/vault/api-docs/secret/kv/kv-v2</p></td>
              </tr>
            
              <tr>
                <td>AWS_SECRETS_MANAGER</td>
                <td>2</td>
                <td><p>ref: https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html</p></td>
              </tr>
            
              <tr>
                <td>GCP_SECRET_MANAGER</td>
                <td>3</td>
                <td><p>ref: https://cloud.google.com/secret-manager/docs</p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.DataSourceType">DataSourceType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>DATA_SOURCE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ADMIN</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>READ_ONLY</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
        <h3 id="bytebase.v1.InstanceService">InstanceService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>GetInstance</td>
                <td><a href="#bytebase.v1.GetInstanceRequest">GetInstanceRequest</a></td>
                <td><a href="#bytebase.v1.Instance">Instance</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ListInstances</td>
                <td><a href="#bytebase.v1.ListInstancesRequest">ListInstancesRequest</a></td>
                <td><a href="#bytebase.v1.ListInstancesResponse">ListInstancesResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CreateInstance</td>
                <td><a href="#bytebase.v1.CreateInstanceRequest">CreateInstanceRequest</a></td>
                <td><a href="#bytebase.v1.Instance">Instance</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UpdateInstance</td>
                <td><a href="#bytebase.v1.UpdateInstanceRequest">UpdateInstanceRequest</a></td>
                <td><a href="#bytebase.v1.Instance">Instance</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DeleteInstance</td>
                <td><a href="#bytebase.v1.DeleteInstanceRequest">DeleteInstanceRequest</a></td>
                <td><a href="#google.protobuf.Empty">.google.protobuf.Empty</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UndeleteInstance</td>
                <td><a href="#bytebase.v1.UndeleteInstanceRequest">UndeleteInstanceRequest</a></td>
                <td><a href="#bytebase.v1.Instance">Instance</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SyncInstance</td>
                <td><a href="#bytebase.v1.SyncInstanceRequest">SyncInstanceRequest</a></td>
                <td><a href="#bytebase.v1.SyncInstanceResponse">SyncInstanceResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>BatchSyncInstances</td>
                <td><a href="#bytebase.v1.BatchSyncInstancesRequest">BatchSyncInstancesRequest</a></td>
                <td><a href="#bytebase.v1.BatchSyncInstancesResponse">BatchSyncInstancesResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>AddDataSource</td>
                <td><a href="#bytebase.v1.AddDataSourceRequest">AddDataSourceRequest</a></td>
                <td><a href="#bytebase.v1.Instance">Instance</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>RemoveDataSource</td>
                <td><a href="#bytebase.v1.RemoveDataSourceRequest">RemoveDataSourceRequest</a></td>
                <td><a href="#bytebase.v1.Instance">Instance</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UpdateDataSource</td>
                <td><a href="#bytebase.v1.UpdateDataSourceRequest">UpdateDataSourceRequest</a></td>
                <td><a href="#bytebase.v1.Instance">Instance</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SyncSlowQueries</td>
                <td><a href="#bytebase.v1.SyncSlowQueriesRequest">SyncSlowQueriesRequest</a></td>
                <td><a href="#google.protobuf.Empty">.google.protobuf.Empty</a></td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>GetInstance</td>
                <td>GET</td>
                <td>/v1/{name=instances/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>ListInstances</td>
                <td>GET</td>
                <td>/v1/instances</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>CreateInstance</td>
                <td>POST</td>
                <td>/v1/instances</td>
                <td>instance</td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdateInstance</td>
                <td>PATCH</td>
                <td>/v1/{instance.name=instances/*}</td>
                <td>instance</td>
              </tr>
              
            
              
              
              <tr>
                <td>DeleteInstance</td>
                <td>DELETE</td>
                <td>/v1/{name=instances/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>UndeleteInstance</td>
                <td>POST</td>
                <td>/v1/{name=instances/*}:undelete</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>SyncInstance</td>
                <td>POST</td>
                <td>/v1/{name=instances/*}:sync</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>BatchSyncInstances</td>
                <td>POST</td>
                <td>/v1/instances:batchSync</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>AddDataSource</td>
                <td>POST</td>
                <td>/v1/{name=instances/*}:addDataSource</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>RemoveDataSource</td>
                <td>POST</td>
                <td>/v1/{name=instances/*}:removeDataSource</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdateDataSource</td>
                <td>PATCH</td>
                <td>/v1/{name=instances/*}:updateDataSource</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>SyncSlowQueries</td>
                <td>POST</td>
                <td>/v1/{parent=instances/*}:syncSlowQueries</td>
                <td>*</td>
              </tr>
              
              <tr>
                <td>SyncSlowQueries</td>
                <td>POST</td>
                <td>/v1/{parent=projects/*}:syncSlowQueries</td>
                <td>*</td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    
      
      <div class="file-heading">
        <h2 id="v1/database_service.proto">v1/database_service.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.AdviseIndexRequest">AdviseIndexRequest</h3>
        <p>AdviseIndexRequest is the request of advising index.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: instances/{instance}/databases/{database} </p></td>
                </tr>
              
                <tr>
                  <td>statement</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The statement to be advised. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.AdviseIndexResponse">AdviseIndexResponse</h3>
        <p>AdviseIndexResponse is the response of advising index.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>current_index</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The current index of the statement used. </p></td>
                </tr>
              
                <tr>
                  <td>suggestion</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The suggested index of the statement. </p></td>
                </tr>
              
                <tr>
                  <td>create_index_statement</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The create index statement of the suggested index. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.BatchUpdateDatabasesRequest">BatchUpdateDatabasesRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The parent resource shared by all databases being updated.
Format: instances/{instance}
If the operation spans parents, a dash (-) may be accepted as a wildcard.
We only support updating the project of databases for now. </p></td>
                </tr>
              
                <tr>
                  <td>requests</td>
                  <td><a href="#bytebase.v1.UpdateDatabaseRequest">UpdateDatabaseRequest</a></td>
                  <td>repeated</td>
                  <td><p>The request message specifying the resources to update.
A maximum of 1000 databases can be modified in a batch. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.BatchUpdateDatabasesResponse">BatchUpdateDatabasesResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>databases</td>
                  <td><a href="#bytebase.v1.Database">Database</a></td>
                  <td>repeated</td>
                  <td><p>Databases updated. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ChangeHistory">ChangeHistory</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: instances/{instance}/databases/{database}/changeHistories/{changeHistory} </p></td>
                </tr>
              
                <tr>
                  <td>uid</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>creator</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: users/hello@world.com </p></td>
                </tr>
              
                <tr>
                  <td>updater</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: users/hello@world.com </p></td>
                </tr>
              
                <tr>
                  <td>create_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>update_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>release_version</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>release version of Bytebase </p></td>
                </tr>
              
                <tr>
                  <td>source</td>
                  <td><a href="#bytebase.v1.ChangeHistory.Source">ChangeHistory.Source</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.v1.ChangeHistory.Type">ChangeHistory.Type</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>status</td>
                  <td><a href="#bytebase.v1.ChangeHistory.Status">ChangeHistory.Status</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>version</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>description</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>statement</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The statement is used for preview purpose. </p></td>
                </tr>
              
                <tr>
                  <td>statement_size</td>
                  <td><a href="#int64">int64</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>statement_sheet</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the sheet resource.
Format: projects/{project}/sheets/{sheet} </p></td>
                </tr>
              
                <tr>
                  <td>schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>schema_size</td>
                  <td><a href="#int64">int64</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>prev_schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>prev_schema_size</td>
                  <td><a href="#int64">int64</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>execution_duration</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>issue</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: projects/{project}/issues/{issue} </p></td>
                </tr>
              
                <tr>
                  <td>changed_resources</td>
                  <td><a href="#bytebase.v1.ChangedResources">ChangedResources</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ChangedResourceDatabase">ChangedResourceDatabase</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>schemas</td>
                  <td><a href="#bytebase.v1.ChangedResourceSchema">ChangedResourceSchema</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ChangedResourceFunction">ChangedResourceFunction</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>ranges</td>
                  <td><a href="#bytebase.v1.Range">Range</a></td>
                  <td>repeated</td>
                  <td><p>The ranges of sub-strings correspond to the statements on the sheet. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ChangedResourceProcedure">ChangedResourceProcedure</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>ranges</td>
                  <td><a href="#bytebase.v1.Range">Range</a></td>
                  <td>repeated</td>
                  <td><p>The ranges of sub-strings correspond to the statements on the sheet. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ChangedResourceSchema">ChangedResourceSchema</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>tables</td>
                  <td><a href="#bytebase.v1.ChangedResourceTable">ChangedResourceTable</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>views</td>
                  <td><a href="#bytebase.v1.ChangedResourceView">ChangedResourceView</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>functions</td>
                  <td><a href="#bytebase.v1.ChangedResourceFunction">ChangedResourceFunction</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>procedures</td>
                  <td><a href="#bytebase.v1.ChangedResourceProcedure">ChangedResourceProcedure</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ChangedResourceTable">ChangedResourceTable</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>ranges</td>
                  <td><a href="#bytebase.v1.Range">Range</a></td>
                  <td>repeated</td>
                  <td><p>The ranges of sub-strings correspond to the statements on the sheet. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ChangedResourceView">ChangedResourceView</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>ranges</td>
                  <td><a href="#bytebase.v1.Range">Range</a></td>
                  <td>repeated</td>
                  <td><p>The ranges of sub-strings correspond to the statements on the sheet. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ChangedResources">ChangedResources</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>databases</td>
                  <td><a href="#bytebase.v1.ChangedResourceDatabase">ChangedResourceDatabase</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.CheckConstraintMetadata">CheckConstraintMetadata</h3>
        <p>CheckConstraintMetadata is the metadata for check constraints.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a check constraint. </p></td>
                </tr>
              
                <tr>
                  <td>expression</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The expression is the expression of a check constraint. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ColumnConfig">ColumnConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a column. </p></td>
                </tr>
              
                <tr>
                  <td>semantic_type_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>labels</td>
                  <td><a href="#bytebase.v1.ColumnConfig.LabelsEntry">ColumnConfig.LabelsEntry</a></td>
                  <td>repeated</td>
                  <td><p>The user labels for a column. </p></td>
                </tr>
              
                <tr>
                  <td>classification_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ColumnConfig.LabelsEntry">ColumnConfig.LabelsEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ColumnMetadata">ColumnMetadata</h3>
        <p>ColumnMetadata is the metadata for columns.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a column. </p></td>
                </tr>
              
                <tr>
                  <td>position</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The position is the position in columns. </p></td>
                </tr>
              
                <tr>
                  <td>has_default</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>default_null</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>default_string</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>default_expression</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>on_update</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The on_update is the on update action of a column.
For MySQL like databases, it&#39;s only supported for TIMESTAMP columns with CURRENT_TIMESTAMP as on update value. </p></td>
                </tr>
              
                <tr>
                  <td>nullable</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>The nullable is the nullable of a column. </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The type is the type of a column. </p></td>
                </tr>
              
                <tr>
                  <td>character_set</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The character_set is the character_set of a column. </p></td>
                </tr>
              
                <tr>
                  <td>collation</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The collation is the collation of a column. </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The comment is the comment of a column.
classification and user_comment is parsed from the comment. </p></td>
                </tr>
              
                <tr>
                  <td>user_comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The user_comment is the user comment of a column parsed from the comment. </p></td>
                </tr>
              
                <tr>
                  <td>effective_masking_level</td>
                  <td><a href="#bytebase.v1.MaskingLevel">MaskingLevel</a></td>
                  <td></td>
                  <td><p>The effective_masking_level is the effective masking level of the column, evaluate from the
column masking data and global masking rules. </p></td>
                </tr>
              
                <tr>
                  <td>generation</td>
                  <td><a href="#bytebase.v1.GenerationMetadata">GenerationMetadata</a></td>
                  <td></td>
                  <td><p>The generation is the generation of a column. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Database">Database</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the database.
Format: instances/{instance}/databases/{database}
{database} is the database name in the instance. </p></td>
                </tr>
              
                <tr>
                  <td>uid</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The system-assigned, unique identifier for a resource. </p></td>
                </tr>
              
                <tr>
                  <td>sync_state</td>
                  <td><a href="#bytebase.v1.State">State</a></td>
                  <td></td>
                  <td><p>The existence of a database on latest sync. </p></td>
                </tr>
              
                <tr>
                  <td>successful_sync_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>The latest synchronization time. </p></td>
                </tr>
              
                <tr>
                  <td>project</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The project for a database.
Format: projects/{project} </p></td>
                </tr>
              
                <tr>
                  <td>schema_version</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The version of database schema. </p></td>
                </tr>
              
                <tr>
                  <td>environment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The environment resource.
Format: environments/prod where prod is the environment resource ID. </p></td>
                </tr>
              
                <tr>
                  <td>effective_environment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The effective environment based on environment tag above and environment tag on the instance.
Inheritance follows https://cloud.google.com/resource-manager/docs/tags/tags-overview. </p></td>
                </tr>
              
                <tr>
                  <td>labels</td>
                  <td><a href="#bytebase.v1.Database.LabelsEntry">Database.LabelsEntry</a></td>
                  <td>repeated</td>
                  <td><p>Labels will be used for deployment and policy control. </p></td>
                </tr>
              
                <tr>
                  <td>instance_resource</td>
                  <td><a href="#bytebase.v1.InstanceResource">InstanceResource</a></td>
                  <td></td>
                  <td><p>The instance resource. </p></td>
                </tr>
              
                <tr>
                  <td>backup_available</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>The database is available for DML prior backup. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Database.LabelsEntry">Database.LabelsEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DatabaseConfig">DatabaseConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>schema_configs</td>
                  <td><a href="#bytebase.v1.SchemaConfig">SchemaConfig</a></td>
                  <td>repeated</td>
                  <td><p>The schema_configs is the list of configs for schemas in a database. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DatabaseMetadata">DatabaseMetadata</h3>
        <p>DatabaseMetadata is the metadata for databases.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The database metadata name.

Format: instances/{instance}/databases/{database}/metadata </p></td>
                </tr>
              
                <tr>
                  <td>schemas</td>
                  <td><a href="#bytebase.v1.SchemaMetadata">SchemaMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The schemas is the list of schemas in a database. </p></td>
                </tr>
              
                <tr>
                  <td>character_set</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The character_set is the character set of a database. </p></td>
                </tr>
              
                <tr>
                  <td>collation</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The collation is the collation of a database. </p></td>
                </tr>
              
                <tr>
                  <td>extensions</td>
                  <td><a href="#bytebase.v1.ExtensionMetadata">ExtensionMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The extensions is the list of extensions in a database. </p></td>
                </tr>
              
                <tr>
                  <td>schema_configs</td>
                  <td><a href="#bytebase.v1.SchemaConfig">SchemaConfig</a></td>
                  <td>repeated</td>
                  <td><p>The schema_configs is the list of configs for schemas in a database. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DatabaseSchema">DatabaseSchema</h3>
        <p>DatabaseSchema is the metadata for databases.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The schema dump from database. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DeleteSecretRequest">DeleteSecretRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the secret to be deleted.
Format:
instances/{instance}/databases/{database}/secrets/{secret} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DependentColumn">DependentColumn</h3>
        <p>DependentColumn is the metadata for dependent columns.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The schema is the schema of a reference column. </p></td>
                </tr>
              
                <tr>
                  <td>table</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The table is the table of a reference column. </p></td>
                </tr>
              
                <tr>
                  <td>column</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The column is the name of a reference column. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DiffSchemaRequest">DiffSchemaRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the database or change history.
Format:
database: instances/{instance}/databases/{database}
change history: instances/{instance}/databases/{database}/changeHistories/{changeHistory} </p></td>
                </tr>
              
                <tr>
                  <td>schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The target schema. </p></td>
                </tr>
              
                <tr>
                  <td>change_history</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The resource name of the change history
Format: instances/{instance}/databases/{database}/changeHistories/{changeHistory} </p></td>
                </tr>
              
                <tr>
                  <td>sdl_format</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Format the schema dump into SDL format. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DiffSchemaResponse">DiffSchemaResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>diff</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ExtensionMetadata">ExtensionMetadata</h3>
        <p>ExtensionMetadata is the metadata for extensions.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of an extension. </p></td>
                </tr>
              
                <tr>
                  <td>schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The schema is the extension that is installed to. But the extension usage is not limited to the schema. </p></td>
                </tr>
              
                <tr>
                  <td>version</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The version is the version of an extension. </p></td>
                </tr>
              
                <tr>
                  <td>description</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The description is the description of an extension. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ExternalTableMetadata">ExternalTableMetadata</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a external table. </p></td>
                </tr>
              
                <tr>
                  <td>external_server_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The external_server_name is the name of the external server. </p></td>
                </tr>
              
                <tr>
                  <td>external_database_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The external_database_name is the name of the external database. </p></td>
                </tr>
              
                <tr>
                  <td>columns</td>
                  <td><a href="#bytebase.v1.ColumnMetadata">ColumnMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The columns is the ordered list of columns in a foreign table. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ForeignKeyMetadata">ForeignKeyMetadata</h3>
        <p>ForeignKeyMetadata is the metadata for foreign keys.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a foreign key. </p></td>
                </tr>
              
                <tr>
                  <td>columns</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The columns are the ordered referencing columns of a foreign key. </p></td>
                </tr>
              
                <tr>
                  <td>referenced_schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The referenced_schema is the referenced schema name of a foreign key.
It is an empty string for databases without such concept such as MySQL. </p></td>
                </tr>
              
                <tr>
                  <td>referenced_table</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The referenced_table is the referenced table name of a foreign key. </p></td>
                </tr>
              
                <tr>
                  <td>referenced_columns</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The referenced_columns are the ordered referenced columns of a foreign key. </p></td>
                </tr>
              
                <tr>
                  <td>on_delete</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The on_delete is the on delete action of a foreign key. </p></td>
                </tr>
              
                <tr>
                  <td>on_update</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The on_update is the on update action of a foreign key. </p></td>
                </tr>
              
                <tr>
                  <td>match_type</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The match_type is the match type of a foreign key.
The match_type is the PostgreSQL specific field.
It&#39;s empty string for other databases. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.FunctionConfig">FunctionConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a function. </p></td>
                </tr>
              
                <tr>
                  <td>updater</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The last updater of the function in branch.
Format: users/{email} </p></td>
                </tr>
              
                <tr>
                  <td>source_branch</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The last change come from branch.
Format: projcets/{project}/branches/{branch} </p></td>
                </tr>
              
                <tr>
                  <td>update_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>The timestamp when the function is updated in branch. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.FunctionMetadata">FunctionMetadata</h3>
        <p>FunctionMetadata is the metadata for functions.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a function. </p></td>
                </tr>
              
                <tr>
                  <td>definition</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The definition is the definition of a function. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GenerationMetadata">GenerationMetadata</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.v1.GenerationMetadata.Type">GenerationMetadata.Type</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>expression</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GetChangeHistoryRequest">GetChangeHistoryRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the change history to retrieve.
Format: instances/{instance}/databases/{database}/changeHistories/{changeHistory} </p></td>
                </tr>
              
                <tr>
                  <td>view</td>
                  <td><a href="#bytebase.v1.ChangeHistoryView">ChangeHistoryView</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>sdl_format</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Format the schema dump into SDL format. </p></td>
                </tr>
              
                <tr>
                  <td>concise</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>When true, the schema dump will be concise. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GetDatabaseMetadataRequest">GetDatabaseMetadataRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the database to retrieve metadata.
Format: instances/{instance}/databases/{database}/metadata </p></td>
                </tr>
              
                <tr>
                  <td>view</td>
                  <td><a href="#bytebase.v1.DatabaseMetadataView">DatabaseMetadataView</a></td>
                  <td></td>
                  <td><p>The view to return. Defaults to DATABASE_METADATA_VIEW_BASIC. </p></td>
                </tr>
              
                <tr>
                  <td>filter</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The filter used for a specific schema object such as
&#34;schemas/schema-a/tables/table-a&#34;.
The column masking level will only be returned when a table filter is used. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GetDatabaseRequest">GetDatabaseRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the database to retrieve.
Format: instances/{instance}/databases/{database} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GetDatabaseSchemaRequest">GetDatabaseSchemaRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the database to retrieve schema.
Format: instances/{instance}/databases/{database}/schema </p></td>
                </tr>
              
                <tr>
                  <td>sdl_format</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Format the schema dump into SDL format. </p></td>
                </tr>
              
                <tr>
                  <td>concise</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>When true, the schema dump will be concise.
For Oracle, there will be tables and indexes only for Sync Schema. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.IndexMetadata">IndexMetadata</h3>
        <p>IndexMetadata is the metadata for indexes.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of an index. </p></td>
                </tr>
              
                <tr>
                  <td>expressions</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The expressions are the ordered columns or expressions of an index.
This could refer to a column or an expression. </p></td>
                </tr>
              
                <tr>
                  <td>key_length</td>
                  <td><a href="#int64">int64</a></td>
                  <td>repeated</td>
                  <td><p>The key_lengths are the ordered key lengths of an index.
If the key length is not specified, it&#39;s -1. </p></td>
                </tr>
              
                <tr>
                  <td>descending</td>
                  <td><a href="#bool">bool</a></td>
                  <td>repeated</td>
                  <td><p>The descending is the ordered descending of an index. </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The type is the type of an index. </p></td>
                </tr>
              
                <tr>
                  <td>unique</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>The unique is whether the index is unique. </p></td>
                </tr>
              
                <tr>
                  <td>primary</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>The primary is whether the index is a primary key index. </p></td>
                </tr>
              
                <tr>
                  <td>visible</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>The visible is whether the index is visible. </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The comment is the comment of an index. </p></td>
                </tr>
              
                <tr>
                  <td>definition</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The definition of an index. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListChangeHistoriesRequest">ListChangeHistoriesRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The parent of the change histories.
Format: instances/{instance}/databases/{database} </p></td>
                </tr>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of change histories to return. The service may return fewer than this value.
If unspecified, at most 10 change histories will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Not used. A page token, received from a previous `ListChangeHistories` call.
Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to `ListChangeHistories` must match
the call that provided the page token. </p></td>
                </tr>
              
                <tr>
                  <td>view</td>
                  <td><a href="#bytebase.v1.ChangeHistoryView">ChangeHistoryView</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>filter</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The filter of the change histories.
follow the [ebnf](https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_form) syntax.
Support filter by type, source or table.
For example:
table = &#34;tableExists(&#39;{database}&#39;, &#39;{schema}&#39;, &#39;{table}&#39;)&#34;
table = &#34;tableExists(&#39;db&#39;, &#39;public&#39;, &#39;table1&#39;) || tableExists(&#39;db&#39;, &#39;public&#39;, &#39;table2&#39;)&#34;
type = &#34;MIGRATE | DATA&#34;
source = &#34;UI&#34;
source = &#34;VCS&#34;

The table filter follow the CEL syntax.
currently, we have one function for CEL:
- tableExists(database, schema, table): return true if the table exists in changed resources.

examples:
Use
  tableExists(&#34;db&#34;, &#34;public&#34;, &#34;table1&#34;)
to filter the change histories which have the table &#34;table1&#34; in the schema &#34;public&#34; of the database &#34;db&#34;.
For MySQL, the schema is always &#34;&#34;, such as tableExists(&#34;db&#34;, &#34;&#34;, &#34;table1&#34;).

Combine multiple functions with &#34;&amp;&amp;&#34; and &#34;||&#34;, we MUST use the Disjunctive Normal Form(DNF).
In other words, the CEL expression consists of several parts connected by OR operators.
For example, the following expression is valid:
(
 tableExists(&#34;db&#34;, &#34;public&#34;, &#34;table1&#34;) &amp;&amp;
 tableExists(&#34;db&#34;, &#34;public&#34;, &#34;table2&#34;)
) || (
 tableExists(&#34;db&#34;, &#34;public&#34;, &#34;table3&#34;)
) </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListChangeHistoriesResponse">ListChangeHistoriesResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>change_histories</td>
                  <td><a href="#bytebase.v1.ChangeHistory">ChangeHistory</a></td>
                  <td>repeated</td>
                  <td><p>The list of change histories. </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListDatabasesRequest">ListDatabasesRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The parent, which owns this collection of databases.
- projects/{project}: list all databases in a project.
- workspaces/{workspace}: list all databases in a workspace. </p></td>
                </tr>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of databases to return. The service may return fewer than
this value.
If unspecified, at most 50 databases will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A page token, received from a previous `ListDatabases` call.
Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to `ListDatabases` must match
the call that provided the page token. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListDatabasesResponse">ListDatabasesResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>databases</td>
                  <td><a href="#bytebase.v1.Database">Database</a></td>
                  <td>repeated</td>
                  <td><p>The databases from the specified request. </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListInstanceDatabasesRequest">ListInstanceDatabasesRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The parent, which owns this collection of databases.
- instances/{instance}: list all databases for an instance. Use &#34;instances/-&#34; to list all databases. </p></td>
                </tr>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of databases to return. The service may return fewer than
this value.
If unspecified, at most 50 databases will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A page token, received from a previous `ListDatabases` call.
Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to `ListDatabases` must match
the call that provided the page token. </p></td>
                </tr>
              
                <tr>
                  <td>filter</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Deprecated.
Filter is used to filter databases returned in the list.
For example, `project == &#34;projects/{project}&#34;` can be used to list databases in a project.
Note: the project filter will be moved to parent. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListInstanceDatabasesResponse">ListInstanceDatabasesResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>databases</td>
                  <td><a href="#bytebase.v1.Database">Database</a></td>
                  <td>repeated</td>
                  <td><p>The databases from the specified request. </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListSecretsRequest">ListSecretsRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The parent of the secret.
Format: instances/{instance}/databases/{database} </p></td>
                </tr>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>Not used. The maximum number of databases to return. The service may return fewer than
this value.
If unspecified, at most 50 databases will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Not used. A page token, received from a previous `ListSecrets` call.
Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to `ListSecrets` must match
the call that provided the page token. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListSecretsResponse">ListSecretsResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>secrets</td>
                  <td><a href="#bytebase.v1.Secret">Secret</a></td>
                  <td>repeated</td>
                  <td><p>The list of secrets. </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Not used. A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListSlowQueriesRequest">ListSlowQueriesRequest</h3>
        <p>ListSlowQueriesRequest is the request of listing slow query.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: projects/{project} </p></td>
                </tr>
              
                <tr>
                  <td>filter</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The filter of the slow query log.
follow the [ebnf](https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_form) syntax.
Support filter by database and start_time in SlowQueryDetails for now.
For example:
Search the slow query log of the specific database:
  - the specific database: database = &#34;instances/{instance}/databases/{database}&#34;
Search the slow query log that start_time after 2022-01-01T12:00:00.000Z:
  - start_time &gt; &#34;2022-01-01T12:00:00.000Z&#34;
  - Should use [RFC-3339 format](https://www.rfc-editor.org/rfc/rfc3339).
  - Currently we only support filtering down to date granularity. </p></td>
                </tr>
              
                <tr>
                  <td>order_by</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The order by of the slow query log.
Support order by count, latest_log_time, average_query_time, maximum_query_time,
average_rows_sent, maximum_rows_sent, average_rows_examined, maximum_rows_examined for now.
For example:
 - order by count: order_by = &#34;count&#34;
 - order by latest_log_time desc: order_by = &#34;latest_log_time desc&#34;
Default: order by average_query_time desc. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListSlowQueriesResponse">ListSlowQueriesResponse</h3>
        <p>ListSlowQueriesResponse is the response of listing slow query.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>slow_query_logs</td>
                  <td><a href="#bytebase.v1.SlowQueryLog">SlowQueryLog</a></td>
                  <td>repeated</td>
                  <td><p>The slow query logs. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.MaterializedViewMetadata">MaterializedViewMetadata</h3>
        <p>MaterializedViewMetadata is the metadata for materialized views.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a materialized view. </p></td>
                </tr>
              
                <tr>
                  <td>definition</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The definition is the definition of a materialized view. </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The comment is the comment of a materialized view. </p></td>
                </tr>
              
                <tr>
                  <td>dependent_columns</td>
                  <td><a href="#bytebase.v1.DependentColumn">DependentColumn</a></td>
                  <td>repeated</td>
                  <td><p>The dependent_columns is the list of dependent columns of a materialized view. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ProcedureConfig">ProcedureConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a procedure. </p></td>
                </tr>
              
                <tr>
                  <td>updater</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The last updater of the procedure in branch.
Format: users/{email} </p></td>
                </tr>
              
                <tr>
                  <td>source_branch</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The last change come from branch.
Format: projcets/{project}/branches/{branch} </p></td>
                </tr>
              
                <tr>
                  <td>update_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>The timestamp when the procedure is updated in branch. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ProcedureMetadata">ProcedureMetadata</h3>
        <p>ProcedureMetadata is the metadata for procedures.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a procedure. </p></td>
                </tr>
              
                <tr>
                  <td>definition</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The definition is the definition of a procedure. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SchemaConfig">SchemaConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the schema name.
It is an empty string for databases without such concept such as MySQL. </p></td>
                </tr>
              
                <tr>
                  <td>table_configs</td>
                  <td><a href="#bytebase.v1.TableConfig">TableConfig</a></td>
                  <td>repeated</td>
                  <td><p>The table_configs is the list of configs for tables in a schema. </p></td>
                </tr>
              
                <tr>
                  <td>function_configs</td>
                  <td><a href="#bytebase.v1.FunctionConfig">FunctionConfig</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>procedure_configs</td>
                  <td><a href="#bytebase.v1.ProcedureConfig">ProcedureConfig</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>view_configs</td>
                  <td><a href="#bytebase.v1.ViewConfig">ViewConfig</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SchemaMetadata">SchemaMetadata</h3>
        <p>SchemaMetadata is the metadata for schemas.</p><p>This is the concept of schema in Postgres, but it's a no-op for MySQL.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the schema name.
It is an empty string for databases without such concept such as MySQL. </p></td>
                </tr>
              
                <tr>
                  <td>tables</td>
                  <td><a href="#bytebase.v1.TableMetadata">TableMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The tables is the list of tables in a schema. </p></td>
                </tr>
              
                <tr>
                  <td>external_tables</td>
                  <td><a href="#bytebase.v1.ExternalTableMetadata">ExternalTableMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The external_tables is the list of external tables in a schema. </p></td>
                </tr>
              
                <tr>
                  <td>views</td>
                  <td><a href="#bytebase.v1.ViewMetadata">ViewMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The views is the list of views in a schema. </p></td>
                </tr>
              
                <tr>
                  <td>functions</td>
                  <td><a href="#bytebase.v1.FunctionMetadata">FunctionMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The functions is the list of functions in a schema. </p></td>
                </tr>
              
                <tr>
                  <td>procedures</td>
                  <td><a href="#bytebase.v1.ProcedureMetadata">ProcedureMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The procedures is the list of procedures in a schema. </p></td>
                </tr>
              
                <tr>
                  <td>streams</td>
                  <td><a href="#bytebase.v1.StreamMetadata">StreamMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The streams is the list of streams in a schema, currently, only used for Snowflake. </p></td>
                </tr>
              
                <tr>
                  <td>tasks</td>
                  <td><a href="#bytebase.v1.TaskMetadata">TaskMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The routines is the list of routines in a schema, currently, only used for Snowflake. </p></td>
                </tr>
              
                <tr>
                  <td>materialized_views</td>
                  <td><a href="#bytebase.v1.MaterializedViewMetadata">MaterializedViewMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The materialized_views is the list of materialized views in a schema. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Secret">Secret</h3>
        <p>Secret is the secret of the database now.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>name is the unique name of the secret, which is specified by the client.
Format:
instances/{instance}/databases/{database}/secrets/{secret} </p></td>
                </tr>
              
                <tr>
                  <td>created_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>Not used. The timestamp when the secret resource was created initially. </p></td>
                </tr>
              
                <tr>
                  <td>updated_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>Not used. The timestamp when the secret resource was updated. </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The value of the secret. </p></td>
                </tr>
              
                <tr>
                  <td>description</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The description of the secret. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SlowQueryDetails">SlowQueryDetails</h3>
        <p>SlowQueryDetails is the details of the slow query log.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>start_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>The start time of the slow query log. </p></td>
                </tr>
              
                <tr>
                  <td>query_time</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p>The query time of the slow query log. </p></td>
                </tr>
              
                <tr>
                  <td>lock_time</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p>The lock time of the slow query log. </p></td>
                </tr>
              
                <tr>
                  <td>rows_sent</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The rows sent of the slow query log. </p></td>
                </tr>
              
                <tr>
                  <td>rows_examined</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The rows examined of the slow query log. </p></td>
                </tr>
              
                <tr>
                  <td>sql_text</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The sql text of the slow query log. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SlowQueryLog">SlowQueryLog</h3>
        <p>SlowQueryLog is the slow query log.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>resource</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The resource of the slow query log.
The format is &#34;instances/{instance}/databases/{database}&#34;. </p></td>
                </tr>
              
                <tr>
                  <td>project</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The project of the slow query log.
The format is &#34;projects/{project}&#34;. </p></td>
                </tr>
              
                <tr>
                  <td>statistics</td>
                  <td><a href="#bytebase.v1.SlowQueryStatistics">SlowQueryStatistics</a></td>
                  <td></td>
                  <td><p>The statistics of the slow query log. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SlowQueryStatistics">SlowQueryStatistics</h3>
        <p>SlowQueryStatistics is the statistics of the slow query log.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>sql_fingerprint</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The fingerprint of the slow query log. </p></td>
                </tr>
              
                <tr>
                  <td>count</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The count of the slow query log. </p></td>
                </tr>
              
                <tr>
                  <td>latest_log_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>The latest log time of the slow query log. </p></td>
                </tr>
              
                <tr>
                  <td>average_query_time</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p>The average query time of the slow query log. </p></td>
                </tr>
              
                <tr>
                  <td>maximum_query_time</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p>The maximum query time of the slow query log. </p></td>
                </tr>
              
                <tr>
                  <td>average_rows_sent</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The average rows sent of the slow query log. </p></td>
                </tr>
              
                <tr>
                  <td>maximum_rows_sent</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum rows sent of the slow query log. </p></td>
                </tr>
              
                <tr>
                  <td>average_rows_examined</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The average rows examined of the slow query log. </p></td>
                </tr>
              
                <tr>
                  <td>maximum_rows_examined</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum rows examined of the slow query log. </p></td>
                </tr>
              
                <tr>
                  <td>query_time_percent</td>
                  <td><a href="#double">double</a></td>
                  <td></td>
                  <td><p>The percentage of the query time. </p></td>
                </tr>
              
                <tr>
                  <td>count_percent</td>
                  <td><a href="#double">double</a></td>
                  <td></td>
                  <td><p>The percentage of the count. </p></td>
                </tr>
              
                <tr>
                  <td>samples</td>
                  <td><a href="#bytebase.v1.SlowQueryDetails">SlowQueryDetails</a></td>
                  <td>repeated</td>
                  <td><p>Samples are details of the sample slow query logs with the same fingerprint. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.StreamMetadata">StreamMetadata</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a stream. </p></td>
                </tr>
              
                <tr>
                  <td>table_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The table_name is the name of the table/view that the stream is created on. </p></td>
                </tr>
              
                <tr>
                  <td>owner</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The owner of the stream. </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The comment of the stream. </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.v1.StreamMetadata.Type">StreamMetadata.Type</a></td>
                  <td></td>
                  <td><p>The type of the stream. </p></td>
                </tr>
              
                <tr>
                  <td>stale</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Indicates whether the stream was last read before the `stale_after` time. </p></td>
                </tr>
              
                <tr>
                  <td>mode</td>
                  <td><a href="#bytebase.v1.StreamMetadata.Mode">StreamMetadata.Mode</a></td>
                  <td></td>
                  <td><p>The mode of the stream. </p></td>
                </tr>
              
                <tr>
                  <td>definition</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The definition of the stream. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SyncDatabaseRequest">SyncDatabaseRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the database to sync.
Format: instances/{instance}/databases/{database} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SyncDatabaseResponse">SyncDatabaseResponse</h3>
        <p></p>

        

        
      
        <h3 id="bytebase.v1.TableConfig">TableConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a table. </p></td>
                </tr>
              
                <tr>
                  <td>column_configs</td>
                  <td><a href="#bytebase.v1.ColumnConfig">ColumnConfig</a></td>
                  <td>repeated</td>
                  <td><p>The column_configs is the ordered list of configs for columns in a table. </p></td>
                </tr>
              
                <tr>
                  <td>classification_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>updater</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The last updater of the table in branch.
Format: users/{email} </p></td>
                </tr>
              
                <tr>
                  <td>source_branch</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The last change come from branch.
Format: projcets/{project}/branches/{branch} </p></td>
                </tr>
              
                <tr>
                  <td>update_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>The timestamp when the table is updated in branch. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.TableMetadata">TableMetadata</h3>
        <p>TableMetadata is the metadata for tables.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a table. </p></td>
                </tr>
              
                <tr>
                  <td>columns</td>
                  <td><a href="#bytebase.v1.ColumnMetadata">ColumnMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The columns is the ordered list of columns in a table. </p></td>
                </tr>
              
                <tr>
                  <td>indexes</td>
                  <td><a href="#bytebase.v1.IndexMetadata">IndexMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The indexes is the list of indexes in a table. </p></td>
                </tr>
              
                <tr>
                  <td>engine</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The engine is the engine of a table. </p></td>
                </tr>
              
                <tr>
                  <td>collation</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The collation is the collation of a table. </p></td>
                </tr>
              
                <tr>
                  <td>charset</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The character set of table. </p></td>
                </tr>
              
                <tr>
                  <td>row_count</td>
                  <td><a href="#int64">int64</a></td>
                  <td></td>
                  <td><p>The row_count is the estimated number of rows of a table. </p></td>
                </tr>
              
                <tr>
                  <td>data_size</td>
                  <td><a href="#int64">int64</a></td>
                  <td></td>
                  <td><p>The data_size is the estimated data size of a table. </p></td>
                </tr>
              
                <tr>
                  <td>index_size</td>
                  <td><a href="#int64">int64</a></td>
                  <td></td>
                  <td><p>The index_size is the estimated index size of a table. </p></td>
                </tr>
              
                <tr>
                  <td>data_free</td>
                  <td><a href="#int64">int64</a></td>
                  <td></td>
                  <td><p>The data_free is the estimated free data size of a table. </p></td>
                </tr>
              
                <tr>
                  <td>create_options</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The create_options is the create option of a table. </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The comment is the comment of a table.
classification and user_comment is parsed from the comment. </p></td>
                </tr>
              
                <tr>
                  <td>user_comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The user_comment is the user comment of a table parsed from the comment. </p></td>
                </tr>
              
                <tr>
                  <td>foreign_keys</td>
                  <td><a href="#bytebase.v1.ForeignKeyMetadata">ForeignKeyMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The foreign_keys is the list of foreign keys in a table. </p></td>
                </tr>
              
                <tr>
                  <td>partitions</td>
                  <td><a href="#bytebase.v1.TablePartitionMetadata">TablePartitionMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The partitions is the list of partitions in a table. </p></td>
                </tr>
              
                <tr>
                  <td>check_constraints</td>
                  <td><a href="#bytebase.v1.CheckConstraintMetadata">CheckConstraintMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The check_constraints is the list of check constraints in a table. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.TablePartitionMetadata">TablePartitionMetadata</h3>
        <p>TablePartitionMetadata is the metadata for table partitions.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a table partition. </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.v1.TablePartitionMetadata.Type">TablePartitionMetadata.Type</a></td>
                  <td></td>
                  <td><p>The type of a table partition. </p></td>
                </tr>
              
                <tr>
                  <td>expression</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The expression is the expression of a table partition.
For PostgreSQL, the expression is the text of {FOR VALUES partition_bound_spec}, see https://www.postgresql.org/docs/current/sql-createtable.html.
For MySQL, the expression is the `expr` or `column_list` of the following syntax.
PARTITION BY
   { [LINEAR] HASH(expr)
   | [LINEAR] KEY [ALGORITHM={1 | 2}] (column_list)
   | RANGE{(expr) | COLUMNS(column_list)}
   | LIST{(expr) | COLUMNS(column_list)} }. </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The value is the value of a table partition.
For MySQL, the value is for RANGE and LIST partition types,
- For a RANGE partition, it contains the value set in the partition&#39;s VALUES LESS THAN clause, which can be either an integer or MAXVALUE.
- For a LIST partition, this column contains the values defined in the partition&#39;s VALUES IN clause, which is a list of comma-separated integer values.
- For others, it&#39;s an empty string. </p></td>
                </tr>
              
                <tr>
                  <td>use_default</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The use_default is whether the users use the default partition, it stores the different value for different database engines.
For MySQL, it&#39;s [INT] type, 0 means not use default partition, otherwise, it&#39;s equals to number in syntax [SUB]PARTITION {number}. </p></td>
                </tr>
              
                <tr>
                  <td>subpartitions</td>
                  <td><a href="#bytebase.v1.TablePartitionMetadata">TablePartitionMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The subpartitions is the list of subpartitions in a table partition. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.TaskMetadata">TaskMetadata</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a task. </p></td>
                </tr>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The id is the snowflake-generated id of a task.
Example: 01ad32a0-1bb6-5e93-0000-000000000001 </p></td>
                </tr>
              
                <tr>
                  <td>owner</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The owner of the task. </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The comment of the task. </p></td>
                </tr>
              
                <tr>
                  <td>warehouse</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The warehouse of the task. </p></td>
                </tr>
              
                <tr>
                  <td>schedule</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The schedule interval of the task. </p></td>
                </tr>
              
                <tr>
                  <td>predecessors</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The predecessor tasks of the task. </p></td>
                </tr>
              
                <tr>
                  <td>state</td>
                  <td><a href="#bytebase.v1.TaskMetadata.State">TaskMetadata.State</a></td>
                  <td></td>
                  <td><p>The state of the task. </p></td>
                </tr>
              
                <tr>
                  <td>condition</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The condition of the task. </p></td>
                </tr>
              
                <tr>
                  <td>definition</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The definition of the task. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdateDatabaseMetadataRequest">UpdateDatabaseMetadataRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>database_metadata</td>
                  <td><a href="#bytebase.v1.DatabaseMetadata">DatabaseMetadata</a></td>
                  <td></td>
                  <td><p>The database metadata to update.

The database_metadata&#39;s `name` field is used to identify the database metadata to update.
Format: instances/{instance}/databases/{database}/metadata </p></td>
                </tr>
              
                <tr>
                  <td>update_mask</td>
                  <td><a href="#google.protobuf.FieldMask">google.protobuf.FieldMask</a></td>
                  <td></td>
                  <td><p>The list of fields to update. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdateDatabaseRequest">UpdateDatabaseRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>database</td>
                  <td><a href="#bytebase.v1.Database">Database</a></td>
                  <td></td>
                  <td><p>The database to update.

The database&#39;s `name` field is used to identify the database to update.
Format: instances/{instance}/databases/{database} </p></td>
                </tr>
              
                <tr>
                  <td>update_mask</td>
                  <td><a href="#google.protobuf.FieldMask">google.protobuf.FieldMask</a></td>
                  <td></td>
                  <td><p>The list of fields to update. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdateSecretRequest">UpdateSecretRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>secret</td>
                  <td><a href="#bytebase.v1.Secret">Secret</a></td>
                  <td></td>
                  <td><p>The secret to be created or updated. </p></td>
                </tr>
              
                <tr>
                  <td>update_mask</td>
                  <td><a href="#google.protobuf.FieldMask">google.protobuf.FieldMask</a></td>
                  <td></td>
                  <td><p>The mask of the fields to be updated. </p></td>
                </tr>
              
                <tr>
                  <td>allow_missing</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>If true, the secret will be created if it does not exist. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ViewConfig">ViewConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a view. </p></td>
                </tr>
              
                <tr>
                  <td>updater</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The last updater of the view in branch.
Format: users/{email} </p></td>
                </tr>
              
                <tr>
                  <td>source_branch</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The last change come from branch.
Format: projcets/{project}/branches/{branch} </p></td>
                </tr>
              
                <tr>
                  <td>update_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>The timestamp when the view is updated in branch. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ViewMetadata">ViewMetadata</h3>
        <p>ViewMetadata is the metadata for views.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a view. </p></td>
                </tr>
              
                <tr>
                  <td>definition</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The definition is the definition of a view. </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The comment is the comment of a view. </p></td>
                </tr>
              
                <tr>
                  <td>dependent_columns</td>
                  <td><a href="#bytebase.v1.DependentColumn">DependentColumn</a></td>
                  <td>repeated</td>
                  <td><p>The dependent_columns is the list of dependent columns of a view. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.v1.ChangeHistory.Source">ChangeHistory.Source</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>SOURCE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UI</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>VCS</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>LIBRARY</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.ChangeHistory.Status">ChangeHistory.Status</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>STATUS_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PENDING</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DONE</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>FAILED</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.ChangeHistory.Type">ChangeHistory.Type</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>BASELINE</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MIGRATE</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MIGRATE_SDL</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MIGRATE_GHOST</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>BRANCH</td>
                <td>5</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DATA</td>
                <td>6</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.ChangeHistoryView">ChangeHistoryView</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>CHANGE_HISTORY_VIEW_UNSPECIFIED</td>
                <td>0</td>
                <td><p>The default / unset value.
The API will default to the BASIC view.</p></td>
              </tr>
            
              <tr>
                <td>CHANGE_HISTORY_VIEW_BASIC</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CHANGE_HISTORY_VIEW_FULL</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.DatabaseMetadataView">DatabaseMetadataView</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>DATABASE_METADATA_VIEW_UNSPECIFIED</td>
                <td>0</td>
                <td><p>The default and unset value.
The API will default to the BASIC view.</p></td>
              </tr>
            
              <tr>
                <td>DATABASE_METADATA_VIEW_BASIC</td>
                <td>1</td>
                <td><p>Include basic information of schema object names such as schema, table, view, function names.</p></td>
              </tr>
            
              <tr>
                <td>DATABASE_METADATA_VIEW_FULL</td>
                <td>2</td>
                <td><p>Include everything such as columns and column masking level.</p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.GenerationMetadata.Type">GenerationMetadata.Type</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TYPE_VIRTUAL</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TYPE_STORED</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.StreamMetadata.Mode">StreamMetadata.Mode</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>MODE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MODE_DEFAULT</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MODE_APPEND_ONLY</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MODE_INSERT_ONLY</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.StreamMetadata.Type">StreamMetadata.Type</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TYPE_DELTA</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.TablePartitionMetadata.Type">TablePartitionMetadata.Type</h3>
        <p>Type is the type of a table partition, some database engines may not support all types.</p><p>Only avilable for the following database engines now:</p><p>MySQL: RANGE, RANGE COLUMNS, LIST, LIST COLUMNS, HASH, LINEAR HASH, KEY, LINEAR_KEY (https://dev.mysql.com/doc/refman/8.0/en/partitioning-types.html)</p><p>TiDB: RANGE, RANGE COLUMNS, LIST, LIST COLUMNS, HASH, KEY</p><p>PostgreSQL: RANGE, LIST, HASH (https://www.postgresql.org/docs/current/ddl-partitioning.html)</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>RANGE</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>RANGE_COLUMNS</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>LIST</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>LIST_COLUMNS</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>HASH</td>
                <td>5</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>LINEAR_HASH</td>
                <td>6</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>KEY</td>
                <td>7</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>LINEAR_KEY</td>
                <td>8</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.TaskMetadata.State">TaskMetadata.State</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>STATE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATE_STARTED</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATE_SUSPENDED</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
        <h3 id="bytebase.v1.DatabaseService">DatabaseService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>GetDatabase</td>
                <td><a href="#bytebase.v1.GetDatabaseRequest">GetDatabaseRequest</a></td>
                <td><a href="#bytebase.v1.Database">Database</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ListInstanceDatabases</td>
                <td><a href="#bytebase.v1.ListInstanceDatabasesRequest">ListInstanceDatabasesRequest</a></td>
                <td><a href="#bytebase.v1.ListInstanceDatabasesResponse">ListInstanceDatabasesResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ListDatabases</td>
                <td><a href="#bytebase.v1.ListDatabasesRequest">ListDatabasesRequest</a></td>
                <td><a href="#bytebase.v1.ListDatabasesResponse">ListDatabasesResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UpdateDatabase</td>
                <td><a href="#bytebase.v1.UpdateDatabaseRequest">UpdateDatabaseRequest</a></td>
                <td><a href="#bytebase.v1.Database">Database</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>BatchUpdateDatabases</td>
                <td><a href="#bytebase.v1.BatchUpdateDatabasesRequest">BatchUpdateDatabasesRequest</a></td>
                <td><a href="#bytebase.v1.BatchUpdateDatabasesResponse">BatchUpdateDatabasesResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SyncDatabase</td>
                <td><a href="#bytebase.v1.SyncDatabaseRequest">SyncDatabaseRequest</a></td>
                <td><a href="#bytebase.v1.SyncDatabaseResponse">SyncDatabaseResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>GetDatabaseMetadata</td>
                <td><a href="#bytebase.v1.GetDatabaseMetadataRequest">GetDatabaseMetadataRequest</a></td>
                <td><a href="#bytebase.v1.DatabaseMetadata">DatabaseMetadata</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UpdateDatabaseMetadata</td>
                <td><a href="#bytebase.v1.UpdateDatabaseMetadataRequest">UpdateDatabaseMetadataRequest</a></td>
                <td><a href="#bytebase.v1.DatabaseMetadata">DatabaseMetadata</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>GetDatabaseSchema</td>
                <td><a href="#bytebase.v1.GetDatabaseSchemaRequest">GetDatabaseSchemaRequest</a></td>
                <td><a href="#bytebase.v1.DatabaseSchema">DatabaseSchema</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DiffSchema</td>
                <td><a href="#bytebase.v1.DiffSchemaRequest">DiffSchemaRequest</a></td>
                <td><a href="#bytebase.v1.DiffSchemaResponse">DiffSchemaResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ListSlowQueries</td>
                <td><a href="#bytebase.v1.ListSlowQueriesRequest">ListSlowQueriesRequest</a></td>
                <td><a href="#bytebase.v1.ListSlowQueriesResponse">ListSlowQueriesResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ListSecrets</td>
                <td><a href="#bytebase.v1.ListSecretsRequest">ListSecretsRequest</a></td>
                <td><a href="#bytebase.v1.ListSecretsResponse">ListSecretsResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UpdateSecret</td>
                <td><a href="#bytebase.v1.UpdateSecretRequest">UpdateSecretRequest</a></td>
                <td><a href="#bytebase.v1.Secret">Secret</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DeleteSecret</td>
                <td><a href="#bytebase.v1.DeleteSecretRequest">DeleteSecretRequest</a></td>
                <td><a href="#google.protobuf.Empty">.google.protobuf.Empty</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>AdviseIndex</td>
                <td><a href="#bytebase.v1.AdviseIndexRequest">AdviseIndexRequest</a></td>
                <td><a href="#bytebase.v1.AdviseIndexResponse">AdviseIndexResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ListChangeHistories</td>
                <td><a href="#bytebase.v1.ListChangeHistoriesRequest">ListChangeHistoriesRequest</a></td>
                <td><a href="#bytebase.v1.ListChangeHistoriesResponse">ListChangeHistoriesResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>GetChangeHistory</td>
                <td><a href="#bytebase.v1.GetChangeHistoryRequest">GetChangeHistoryRequest</a></td>
                <td><a href="#bytebase.v1.ChangeHistory">ChangeHistory</a></td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>GetDatabase</td>
                <td>GET</td>
                <td>/v1/{name=instances/*/databases/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>ListInstanceDatabases</td>
                <td>GET</td>
                <td>/v1/{parent=instances/*}/databases</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>ListDatabases</td>
                <td>GET</td>
                <td>/v1/{parent=projects/*}/databases</td>
                <td></td>
              </tr>
              
              <tr>
                <td>ListDatabases</td>
                <td>GET</td>
                <td>/v1/{parent=workspaces/*}/databases</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdateDatabase</td>
                <td>PATCH</td>
                <td>/v1/{database.name=instances/*/databases/*}</td>
                <td>database</td>
              </tr>
              
            
              
              
              <tr>
                <td>BatchUpdateDatabases</td>
                <td>POST</td>
                <td>/v1/{parent=instances/*}/databases:batchUpdate</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>SyncDatabase</td>
                <td>POST</td>
                <td>/v1/{name=instances/*/databases/*}:sync</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>GetDatabaseMetadata</td>
                <td>GET</td>
                <td>/v1/{name=instances/*/databases/*/metadata}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdateDatabaseMetadata</td>
                <td>PATCH</td>
                <td>/v1/{database_metadata.name=instances/*/databases/*/metadata}</td>
                <td>database_metadata</td>
              </tr>
              
            
              
              
              <tr>
                <td>GetDatabaseSchema</td>
                <td>GET</td>
                <td>/v1/{name=instances/*/databases/*/schema}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>DiffSchema</td>
                <td>POST</td>
                <td>/v1/{name=instances/*/databases/*}:diffSchema</td>
                <td>*</td>
              </tr>
              
              <tr>
                <td>DiffSchema</td>
                <td>POST</td>
                <td>/v1/{name=instances/*/databases/*/changeHistories/*}:diffSchema</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>ListSlowQueries</td>
                <td>GET</td>
                <td>/v1/{parent=projects/*}/slowQueries</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>ListSecrets</td>
                <td>GET</td>
                <td>/v1/{parent=instances/*/databases/*}/secrets</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdateSecret</td>
                <td>PATCH</td>
                <td>/v1/{secret.name=instances/*/databases/*/secrets/*}</td>
                <td>secret</td>
              </tr>
              
            
              
              
              <tr>
                <td>DeleteSecret</td>
                <td>DELETE</td>
                <td>/v1/{name=instances/*/databases/*/secrets/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>AdviseIndex</td>
                <td>POST</td>
                <td>/v1/{parent=instances/*/databases/*}:adviseIndex</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>ListChangeHistories</td>
                <td>GET</td>
                <td>/v1/{parent=instances/*/databases/*}/changeHistories</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>GetChangeHistory</td>
                <td>GET</td>
                <td>/v1/{name=instances/*/databases/*/changeHistories/*}</td>
                <td></td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    
      
      <div class="file-heading">
        <h2 id="v1/branch_service.proto">v1/branch_service.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.Branch">Branch</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the branch.
Format: projects/{project}/branches/{branch}
{branch} should be the id of a sheet. </p></td>
                </tr>
              
                <tr>
                  <td>branch_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The branch ID. </p></td>
                </tr>
              
                <tr>
                  <td>schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The schema of branch. AKA sheet&#39;s statement. </p></td>
                </tr>
              
                <tr>
                  <td>schema_metadata</td>
                  <td><a href="#bytebase.v1.DatabaseMetadata">DatabaseMetadata</a></td>
                  <td></td>
                  <td><p>The metadata of the current editing schema. </p></td>
                </tr>
              
                <tr>
                  <td>baseline_schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The baseline schema. </p></td>
                </tr>
              
                <tr>
                  <td>baseline_schema_metadata</td>
                  <td><a href="#bytebase.v1.DatabaseMetadata">DatabaseMetadata</a></td>
                  <td></td>
                  <td><p>The metadata of the baseline schema. </p></td>
                </tr>
              
                <tr>
                  <td>engine</td>
                  <td><a href="#bytebase.v1.Engine">Engine</a></td>
                  <td></td>
                  <td><p>The database engine of the branch. </p></td>
                </tr>
              
                <tr>
                  <td>baseline_database</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the baseline database.
Format: instances/{instance}/databases/{database} </p></td>
                </tr>
              
                <tr>
                  <td>parent_branch</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the parent branch.
For main branch, it&#39;s empty.
For child branch, its format will be: projects/{project}/branches/{branch} </p></td>
                </tr>
              
                <tr>
                  <td>etag</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The etag of the branch. </p></td>
                </tr>
              
                <tr>
                  <td>creator</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The creator of the branch.
Format: users/{email} </p></td>
                </tr>
              
                <tr>
                  <td>updater</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The updater of the branch.
Format: users/{email} </p></td>
                </tr>
              
                <tr>
                  <td>create_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>The timestamp when the branch was created. </p></td>
                </tr>
              
                <tr>
                  <td>update_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>The timestamp when the branch was last updated. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.CreateBranchRequest">CreateBranchRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The parent, which owns this collection of branches.
Format: project/{project} </p></td>
                </tr>
              
                <tr>
                  <td>branch</td>
                  <td><a href="#bytebase.v1.Branch">Branch</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>branch_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The ID to use for the branch, which will become the final component of
the branch&#39;s resource name.
Format: [a-zA-Z][a-zA-Z0-9-_/]&#43;. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DeleteBranchRequest">DeleteBranchRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the branch to delete.
Format: projects/{project}/branches/{branch} </p></td>
                </tr>
              
                <tr>
                  <td>force</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>By default, server will return `FAILED_PRECONDITION` error
if delete the branch that is parent of other branches.
If true, server will delete the branch forcely but will not delete its children branches. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DiffDatabaseRequest">DiffDatabaseRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of branch. </p></td>
                </tr>
              
                <tr>
                  <td>database</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the databsae to merge the branch to. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DiffDatabaseResponse">DiffDatabaseResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>diff</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The schema diff when merge occurs seamlessly. </p></td>
                </tr>
              
                <tr>
                  <td>schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The merged schema if there is no conflict. </p></td>
                </tr>
              
                <tr>
                  <td>conflict_schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The conflict schema when rebase has conflicts.
The conflict section is enclosed by the following.
&lt;&lt;&lt;&lt;&lt; HEAD
====
&gt;&gt;&gt;&gt;&gt; main </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DiffMetadataRequest">DiffMetadataRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>source_metadata</td>
                  <td><a href="#bytebase.v1.DatabaseMetadata">DatabaseMetadata</a></td>
                  <td></td>
                  <td><p>The metadata of the source schema. </p></td>
                </tr>
              
                <tr>
                  <td>target_metadata</td>
                  <td><a href="#bytebase.v1.DatabaseMetadata">DatabaseMetadata</a></td>
                  <td></td>
                  <td><p>The metadata of the target schema. </p></td>
                </tr>
              
                <tr>
                  <td>engine</td>
                  <td><a href="#bytebase.v1.Engine">Engine</a></td>
                  <td></td>
                  <td><p>The database engine of the schema. </p></td>
                </tr>
              
                <tr>
                  <td>classification_from_config</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>If false, we will build the raw common by classification in database config. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DiffMetadataResponse">DiffMetadataResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>diff</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The diff of the metadata. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GetBranchRequest">GetBranchRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the branch to retrieve.
Format: projects/{project}/branches/{branch} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListBranchesRequest">ListBranchesRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The parent resource of the branch.
Format: projects/{project} </p></td>
                </tr>
              
                <tr>
                  <td>filter</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>To filter the search result. </p></td>
                </tr>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of branches to return. The service may return fewer than
this value.
If unspecified, at most 50 branches will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A page token, received from a previous `ListBranches` call.
Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to `ListBranches` must match
the call that provided the page token. </p></td>
                </tr>
              
                <tr>
                  <td>view</td>
                  <td><a href="#bytebase.v1.BranchView">BranchView</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListBranchesResponse">ListBranchesResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>branches</td>
                  <td><a href="#bytebase.v1.Branch">Branch</a></td>
                  <td>repeated</td>
                  <td><p>The branches from the specified request. </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.MergeBranchRequest">MergeBranchRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the base branch to merge to.
Format: projects/{project}/branches/{branch} </p></td>
                </tr>
              
                <tr>
                  <td>head_branch</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The head branch to merge from.
Format: projects/{project}/branches/{branch} </p></td>
                </tr>
              
                <tr>
                  <td>etag</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The current etag of the branch.
If an etag is provided and does not match the current etag of the branch,
the call will be blocked and an ABORTED error will be returned.
The etag should be the etag from named branch. </p></td>
                </tr>
              
                <tr>
                  <td>validate_only</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>validate_only determines if the merge can occur seamlessly without any conflicts. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.RebaseBranchRequest">RebaseBranchRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the base branch to merge to.
Format: projects/{project}/branches/{branch} </p></td>
                </tr>
              
                <tr>
                  <td>source_database</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The database (remote upstream) used to rebase.
We use its schema as baseline and reapply the difference between base and head of the named branch.
Format: instances/{instance}/databases/{database} </p></td>
                </tr>
              
                <tr>
                  <td>source_branch</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The branch (remote upstream) used to rebase. We use its head as baseline.
We use its head schema as baseline and reapply the difference between base and head of the named branch.
Format: projects/{project}/branches/{branch} </p></td>
                </tr>
              
                <tr>
                  <td>merged_schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>For failed merge, we will pass in this addition merged schema and use it for head.
This has to be set together with source_database or source_branch. </p></td>
                </tr>
              
                <tr>
                  <td>etag</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The current etag of the branch.
If an etag is provided and does not match the current etag of the branch,
the call will be blocked and an ABORTED error will be returned.
The etag should be specified for using merged_schema. The etag should be the etag from named branch. </p></td>
                </tr>
              
                <tr>
                  <td>validate_only</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>validate_only determines if the rebase can occur seamlessly without any conflicts. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.RebaseBranchResponse">RebaseBranchResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>branch</td>
                  <td><a href="#bytebase.v1.Branch">Branch</a></td>
                  <td></td>
                  <td><p>The rebased branch when rebase occurs seamlessly. </p></td>
                </tr>
              
                <tr>
                  <td>conflict_schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The conflict schema when rebase has conflicts.
The conflict section is enclosed by the following.
&lt;&lt;&lt;&lt;&lt; HEAD
====
&gt;&gt;&gt;&gt;&gt; main </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdateBranchRequest">UpdateBranchRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>branch</td>
                  <td><a href="#bytebase.v1.Branch">Branch</a></td>
                  <td></td>
                  <td><p>The branch to update.

The branch&#39;s `name` field is used to identify the branch to update.
Format: projects/{project}/branches/{branch} </p></td>
                </tr>
              
                <tr>
                  <td>update_mask</td>
                  <td><a href="#google.protobuf.FieldMask">google.protobuf.FieldMask</a></td>
                  <td></td>
                  <td><p>The list of fields to update. </p></td>
                </tr>
              
                <tr>
                  <td>etag</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The current etag of the branch.
If an etag is provided and does not match the current etag of the branch,
the call will be blocked and an ABORTED error will be returned.
The etag should be specified for using merged_schema. The etag should be the etag from named branch. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.v1.BranchView">BranchView</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>BRANCH_VIEW_UNSPECIFIED</td>
                <td>0</td>
                <td><p>The default / unset value.
The API will default to the BASIC view.</p></td>
              </tr>
            
              <tr>
                <td>BRANCH_VIEW_BASIC</td>
                <td>1</td>
                <td><p>Exclude schema, baseline_schema.</p></td>
              </tr>
            
              <tr>
                <td>BRANCH_VIEW_FULL</td>
                <td>2</td>
                <td><p>Include everything.</p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
        <h3 id="bytebase.v1.BranchService">BranchService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>GetBranch</td>
                <td><a href="#bytebase.v1.GetBranchRequest">GetBranchRequest</a></td>
                <td><a href="#bytebase.v1.Branch">Branch</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ListBranches</td>
                <td><a href="#bytebase.v1.ListBranchesRequest">ListBranchesRequest</a></td>
                <td><a href="#bytebase.v1.ListBranchesResponse">ListBranchesResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CreateBranch</td>
                <td><a href="#bytebase.v1.CreateBranchRequest">CreateBranchRequest</a></td>
                <td><a href="#bytebase.v1.Branch">Branch</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UpdateBranch</td>
                <td><a href="#bytebase.v1.UpdateBranchRequest">UpdateBranchRequest</a></td>
                <td><a href="#bytebase.v1.Branch">Branch</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MergeBranch</td>
                <td><a href="#bytebase.v1.MergeBranchRequest">MergeBranchRequest</a></td>
                <td><a href="#bytebase.v1.Branch">Branch</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>RebaseBranch</td>
                <td><a href="#bytebase.v1.RebaseBranchRequest">RebaseBranchRequest</a></td>
                <td><a href="#bytebase.v1.RebaseBranchResponse">RebaseBranchResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DeleteBranch</td>
                <td><a href="#bytebase.v1.DeleteBranchRequest">DeleteBranchRequest</a></td>
                <td><a href="#google.protobuf.Empty">.google.protobuf.Empty</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DiffMetadata</td>
                <td><a href="#bytebase.v1.DiffMetadataRequest">DiffMetadataRequest</a></td>
                <td><a href="#bytebase.v1.DiffMetadataResponse">DiffMetadataResponse</a></td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>GetBranch</td>
                <td>GET</td>
                <td>/v1/{name=projects/*/branches/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>ListBranches</td>
                <td>GET</td>
                <td>/v1/{parent=projects/*}/branches</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>CreateBranch</td>
                <td>POST</td>
                <td>/v1/{parent=projects/*}/branch</td>
                <td>branch</td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdateBranch</td>
                <td>PATCH</td>
                <td>/v1/{branch.name=projects/*/branches/*}</td>
                <td>branch</td>
              </tr>
              
            
              
              
              <tr>
                <td>MergeBranch</td>
                <td>POST</td>
                <td>/v1/{name=projects/*/branches/*}:merge</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>RebaseBranch</td>
                <td>POST</td>
                <td>/v1/{name=projects/*/branches/*}:rebase</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>DeleteBranch</td>
                <td>DELETE</td>
                <td>/v1/{name=projects/*/branches/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>DiffMetadata</td>
                <td>POST</td>
                <td>/v1/schemaDesign:diffMetadata</td>
                <td>*</td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    
      
      <div class="file-heading">
        <h2 id="v1/cel_service.proto">v1/cel_service.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.BatchDeparseRequest">BatchDeparseRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>expressions</td>
                  <td><a href="#google.api.expr.v1alpha1.ParsedExpr">google.api.expr.v1alpha1.ParsedExpr</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.BatchDeparseResponse">BatchDeparseResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>expressions</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.BatchParseRequest">BatchParseRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>expressions</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.BatchParseResponse">BatchParseResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>expressions</td>
                  <td><a href="#google.api.expr.v1alpha1.ParsedExpr">google.api.expr.v1alpha1.ParsedExpr</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
        <h3 id="bytebase.v1.CelService">CelService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>BatchParse</td>
                <td><a href="#bytebase.v1.BatchParseRequest">BatchParseRequest</a></td>
                <td><a href="#bytebase.v1.BatchParseResponse">BatchParseResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>BatchDeparse</td>
                <td><a href="#bytebase.v1.BatchDeparseRequest">BatchDeparseRequest</a></td>
                <td><a href="#bytebase.v1.BatchDeparseResponse">BatchDeparseResponse</a></td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>BatchParse</td>
                <td>POST</td>
                <td>/v1/cel/batchParse</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>BatchDeparse</td>
                <td>POST</td>
                <td>/v1/cel/batchDeparse</td>
                <td>*</td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    
      
      <div class="file-heading">
        <h2 id="v1/changelist_service.proto">v1/changelist_service.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.Changelist">Changelist</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the changelist resource.
Canonical parent is project.
Format: projects/{project}/changelists/{changelist} </p></td>
                </tr>
              
                <tr>
                  <td>description</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>creator</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The creator of the changelist.
Format: users/{email} </p></td>
                </tr>
              
                <tr>
                  <td>updater</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The updater of the changelist.
Format: users/{email} </p></td>
                </tr>
              
                <tr>
                  <td>create_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>The create time of the changelist. </p></td>
                </tr>
              
                <tr>
                  <td>update_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>The last update time of the changelist. </p></td>
                </tr>
              
                <tr>
                  <td>changes</td>
                  <td><a href="#bytebase.v1.Changelist.Change">Changelist.Change</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Changelist.Change">Changelist.Change</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>sheet</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of a sheet. </p></td>
                </tr>
              
                <tr>
                  <td>source</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The source of origin.
1) change history: instances/{instance}/databases/{database}/changeHistories/{changeHistory}.
2) branch: projects/{project}/branches/{branch}.
3) raw SQL if empty. </p></td>
                </tr>
              
                <tr>
                  <td>version</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The migration version for a change. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.CreateChangelistRequest">CreateChangelistRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The parent resource where this changelist will be created.
Format: projects/{project} </p></td>
                </tr>
              
                <tr>
                  <td>changelist</td>
                  <td><a href="#bytebase.v1.Changelist">Changelist</a></td>
                  <td></td>
                  <td><p>The changelist to create. </p></td>
                </tr>
              
                <tr>
                  <td>changelist_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The ID to use for the changelist, which will become the final component of
the changelist&#39;s resource name.

This value should be 4-63 characters, and valid characters
are /[a-z][0-9]-/. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DeleteChangelistRequest">DeleteChangelistRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the changelist to delete.
Format: projects/{project}/changelists/{changelist} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GetChangelistRequest">GetChangelistRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the changelist to retrieve.
Format: projects/{project}/changelists/{changelist} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListChangelistsRequest">ListChangelistsRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The parent, which owns this collection of changelists.
Format: projects/{project} </p></td>
                </tr>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of databases to return. The service may return fewer than
this value.
If unspecified, at most 50 databases will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A page token, received from a previous `ListDatabases` call.
Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to `ListDatabases` must match
the call that provided the page token. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListChangelistsResponse">ListChangelistsResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>changelists</td>
                  <td><a href="#bytebase.v1.Changelist">Changelist</a></td>
                  <td>repeated</td>
                  <td><p>The changelists from the specified request. </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdateChangelistRequest">UpdateChangelistRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>changelist</td>
                  <td><a href="#bytebase.v1.Changelist">Changelist</a></td>
                  <td></td>
                  <td><p>The changelist to update.

The changelist&#39;s `name` field is used to identify the changelist to update.
Format: projects/{project}/changelists/{changelist} </p></td>
                </tr>
              
                <tr>
                  <td>update_mask</td>
                  <td><a href="#google.protobuf.FieldMask">google.protobuf.FieldMask</a></td>
                  <td></td>
                  <td><p>The list of fields to be updated. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
        <h3 id="bytebase.v1.ChangelistService">ChangelistService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>CreateChangelist</td>
                <td><a href="#bytebase.v1.CreateChangelistRequest">CreateChangelistRequest</a></td>
                <td><a href="#bytebase.v1.Changelist">Changelist</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>GetChangelist</td>
                <td><a href="#bytebase.v1.GetChangelistRequest">GetChangelistRequest</a></td>
                <td><a href="#bytebase.v1.Changelist">Changelist</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ListChangelists</td>
                <td><a href="#bytebase.v1.ListChangelistsRequest">ListChangelistsRequest</a></td>
                <td><a href="#bytebase.v1.ListChangelistsResponse">ListChangelistsResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UpdateChangelist</td>
                <td><a href="#bytebase.v1.UpdateChangelistRequest">UpdateChangelistRequest</a></td>
                <td><a href="#bytebase.v1.Changelist">Changelist</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DeleteChangelist</td>
                <td><a href="#bytebase.v1.DeleteChangelistRequest">DeleteChangelistRequest</a></td>
                <td><a href="#google.protobuf.Empty">.google.protobuf.Empty</a></td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>CreateChangelist</td>
                <td>POST</td>
                <td>/v1/{parent=projects/*}/changelists</td>
                <td>changelist</td>
              </tr>
              
            
              
              
              <tr>
                <td>GetChangelist</td>
                <td>GET</td>
                <td>/v1/{name=projects/*/changelists/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>ListChangelists</td>
                <td>GET</td>
                <td>/v1/{parent=projects/*}/changelists</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdateChangelist</td>
                <td>PATCH</td>
                <td>/v1/{changelist.name=projects/*/changelists/*}</td>
                <td>changelist</td>
              </tr>
              
            
              
              
              <tr>
                <td>DeleteChangelist</td>
                <td>DELETE</td>
                <td>/v1/{name=projects/*/changelists/*}</td>
                <td></td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    
      
      <div class="file-heading">
        <h2 id="v1/database_group_service.proto">v1/database_group_service.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.CreateDatabaseGroupRequest">CreateDatabaseGroupRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The parent resource where this database group will be created.
Format: projects/{project} </p></td>
                </tr>
              
                <tr>
                  <td>database_group</td>
                  <td><a href="#bytebase.v1.DatabaseGroup">DatabaseGroup</a></td>
                  <td></td>
                  <td><p>The database group to create. </p></td>
                </tr>
              
                <tr>
                  <td>database_group_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The ID to use for the database group, which will become the final component of
the database group&#39;s resource name.

This value should be 4-63 characters, and valid characters
are /[a-z][0-9]-/. </p></td>
                </tr>
              
                <tr>
                  <td>validate_only</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>If set, validate the create request and preview the full database group response, but do not actually create it. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DatabaseGroup">DatabaseGroup</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the database group.
Format: projects/{project}/databaseGroups/{databaseGroup} </p></td>
                </tr>
              
                <tr>
                  <td>database_placeholder</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The short name used in actual databases specified by users.
For example, the placeholder for db1_2010, db1_2021, db1_2023 will be &#34;db1&#34;. </p></td>
                </tr>
              
                <tr>
                  <td>database_expr</td>
                  <td><a href="#google.type.Expr">google.type.Expr</a></td>
                  <td></td>
                  <td><p>The condition that is associated with this database group. </p></td>
                </tr>
              
                <tr>
                  <td>matched_databases</td>
                  <td><a href="#bytebase.v1.DatabaseGroup.Database">DatabaseGroup.Database</a></td>
                  <td>repeated</td>
                  <td><p>The list of databases that match the database group condition. </p></td>
                </tr>
              
                <tr>
                  <td>unmatched_databases</td>
                  <td><a href="#bytebase.v1.DatabaseGroup.Database">DatabaseGroup.Database</a></td>
                  <td>repeated</td>
                  <td><p>The list of databases that match the database group condition. </p></td>
                </tr>
              
                <tr>
                  <td>multitenancy</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DatabaseGroup.Database">DatabaseGroup.Database</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The resource name of the database.
Format: instances/{instance}/databases/{database} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DeleteDatabaseGroupRequest">DeleteDatabaseGroupRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the database group to delete.
Format: projects/{project}/databaseGroups/{databaseGroup} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GetDatabaseGroupRequest">GetDatabaseGroupRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the database group to retrieve.
Format: projects/{project}/databaseGroups/{databaseGroup} </p></td>
                </tr>
              
                <tr>
                  <td>view</td>
                  <td><a href="#bytebase.v1.DatabaseGroupView">DatabaseGroupView</a></td>
                  <td></td>
                  <td><p>The view to return. Defaults to DATABASE_GROUP_VIEW_BASIC. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListDatabaseGroupsRequest">ListDatabaseGroupsRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The parent resource whose database groups are to be listed.
Format: projects/{project} </p></td>
                </tr>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>Not used. The maximum number of anomalies to return. The service may return fewer than
this value.
If unspecified, at most 50 anomalies will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Not used. A page token, received from a previous `ListDatabaseGroups` call.
Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to `ListDatabaseGroups` must match
the call that provided the page token. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListDatabaseGroupsResponse">ListDatabaseGroupsResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>database_groups</td>
                  <td><a href="#bytebase.v1.DatabaseGroup">DatabaseGroup</a></td>
                  <td>repeated</td>
                  <td><p>database_groups is the list of database groups. </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Not used. A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdateDatabaseGroupRequest">UpdateDatabaseGroupRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>database_group</td>
                  <td><a href="#bytebase.v1.DatabaseGroup">DatabaseGroup</a></td>
                  <td></td>
                  <td><p>The database group to update.

The database group&#39;s `name` field is used to identify the database group to update.
Format: projects/{project}/databaseGroups/{databaseGroup} </p></td>
                </tr>
              
                <tr>
                  <td>update_mask</td>
                  <td><a href="#google.protobuf.FieldMask">google.protobuf.FieldMask</a></td>
                  <td></td>
                  <td><p>The list of fields to update. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.v1.DatabaseGroupView">DatabaseGroupView</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>DATABASE_GROUP_VIEW_UNSPECIFIED</td>
                <td>0</td>
                <td><p>The default / unset value.
The API will default to the BASIC view.</p></td>
              </tr>
            
              <tr>
                <td>DATABASE_GROUP_VIEW_BASIC</td>
                <td>1</td>
                <td><p>Include basic information about the database group, but exclude the list of matched databases and unmatched databases.</p></td>
              </tr>
            
              <tr>
                <td>DATABASE_GROUP_VIEW_FULL</td>
                <td>2</td>
                <td><p>Include everything.</p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
        <h3 id="bytebase.v1.DatabaseGroupService">DatabaseGroupService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>ListDatabaseGroups</td>
                <td><a href="#bytebase.v1.ListDatabaseGroupsRequest">ListDatabaseGroupsRequest</a></td>
                <td><a href="#bytebase.v1.ListDatabaseGroupsResponse">ListDatabaseGroupsResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>GetDatabaseGroup</td>
                <td><a href="#bytebase.v1.GetDatabaseGroupRequest">GetDatabaseGroupRequest</a></td>
                <td><a href="#bytebase.v1.DatabaseGroup">DatabaseGroup</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CreateDatabaseGroup</td>
                <td><a href="#bytebase.v1.CreateDatabaseGroupRequest">CreateDatabaseGroupRequest</a></td>
                <td><a href="#bytebase.v1.DatabaseGroup">DatabaseGroup</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UpdateDatabaseGroup</td>
                <td><a href="#bytebase.v1.UpdateDatabaseGroupRequest">UpdateDatabaseGroupRequest</a></td>
                <td><a href="#bytebase.v1.DatabaseGroup">DatabaseGroup</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DeleteDatabaseGroup</td>
                <td><a href="#bytebase.v1.DeleteDatabaseGroupRequest">DeleteDatabaseGroupRequest</a></td>
                <td><a href="#google.protobuf.Empty">.google.protobuf.Empty</a></td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>ListDatabaseGroups</td>
                <td>GET</td>
                <td>/v1/{parent=projects/*}/databaseGroups</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>GetDatabaseGroup</td>
                <td>GET</td>
                <td>/v1/{name=projects/*/databaseGroups/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>CreateDatabaseGroup</td>
                <td>POST</td>
                <td>/v1/{parent=projects/*}/databaseGroups</td>
                <td>database_group</td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdateDatabaseGroup</td>
                <td>PATCH</td>
                <td>/v1/{database_group.name=projects/*/databaseGroups/*}</td>
                <td>database_group</td>
              </tr>
              
            
              
              
              <tr>
                <td>DeleteDatabaseGroup</td>
                <td>DELETE</td>
                <td>/v1/{name=projects/*/databaseGroups/*}</td>
                <td></td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    
      
      <div class="file-heading">
        <h2 id="v1/environment_service.proto">v1/environment_service.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.CreateEnvironmentRequest">CreateEnvironmentRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>environment</td>
                  <td><a href="#bytebase.v1.Environment">Environment</a></td>
                  <td></td>
                  <td><p>The environment to create. </p></td>
                </tr>
              
                <tr>
                  <td>environment_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The ID to use for the environment, which will become the final component of
the environment&#39;s resource name.

This value should be 4-63 characters, and valid characters
are /[a-z][0-9]-/. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DeleteEnvironmentRequest">DeleteEnvironmentRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the environment to delete.
Format: environments/{environment} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Environment">Environment</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the environment.
Format: environments/{environment} </p></td>
                </tr>
              
                <tr>
                  <td>state</td>
                  <td><a href="#bytebase.v1.State">State</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>order</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>tier</td>
                  <td><a href="#bytebase.v1.EnvironmentTier">EnvironmentTier</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GetEnvironmentRequest">GetEnvironmentRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the environment to retrieve.
Format: environments/{environment} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListEnvironmentsRequest">ListEnvironmentsRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of environments to return. The service may return fewer than
this value.
If unspecified, at most 50 environments will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A page token, received from a previous `ListEnvironments` call.
Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to `ListEnvironments` must match
the call that provided the page token. </p></td>
                </tr>
              
                <tr>
                  <td>show_deleted</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Show deleted environments if specified. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListEnvironmentsResponse">ListEnvironmentsResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>environments</td>
                  <td><a href="#bytebase.v1.Environment">Environment</a></td>
                  <td>repeated</td>
                  <td><p>The environments from the specified request. </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UndeleteEnvironmentRequest">UndeleteEnvironmentRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the deleted environment.
Format: environments/{environment} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdateEnvironmentRequest">UpdateEnvironmentRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>environment</td>
                  <td><a href="#bytebase.v1.Environment">Environment</a></td>
                  <td></td>
                  <td><p>The environment to update.

The environment&#39;s `name` field is used to identify the environment to update.
Format: environments/{environment} </p></td>
                </tr>
              
                <tr>
                  <td>update_mask</td>
                  <td><a href="#google.protobuf.FieldMask">google.protobuf.FieldMask</a></td>
                  <td></td>
                  <td><p>The list of fields to update. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.v1.EnvironmentTier">EnvironmentTier</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>ENVIRONMENT_TIER_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PROTECTED</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UNPROTECTED</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
        <h3 id="bytebase.v1.EnvironmentService">EnvironmentService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>GetEnvironment</td>
                <td><a href="#bytebase.v1.GetEnvironmentRequest">GetEnvironmentRequest</a></td>
                <td><a href="#bytebase.v1.Environment">Environment</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ListEnvironments</td>
                <td><a href="#bytebase.v1.ListEnvironmentsRequest">ListEnvironmentsRequest</a></td>
                <td><a href="#bytebase.v1.ListEnvironmentsResponse">ListEnvironmentsResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CreateEnvironment</td>
                <td><a href="#bytebase.v1.CreateEnvironmentRequest">CreateEnvironmentRequest</a></td>
                <td><a href="#bytebase.v1.Environment">Environment</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UpdateEnvironment</td>
                <td><a href="#bytebase.v1.UpdateEnvironmentRequest">UpdateEnvironmentRequest</a></td>
                <td><a href="#bytebase.v1.Environment">Environment</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DeleteEnvironment</td>
                <td><a href="#bytebase.v1.DeleteEnvironmentRequest">DeleteEnvironmentRequest</a></td>
                <td><a href="#google.protobuf.Empty">.google.protobuf.Empty</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UndeleteEnvironment</td>
                <td><a href="#bytebase.v1.UndeleteEnvironmentRequest">UndeleteEnvironmentRequest</a></td>
                <td><a href="#bytebase.v1.Environment">Environment</a></td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>GetEnvironment</td>
                <td>GET</td>
                <td>/v1/{name=environments/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>ListEnvironments</td>
                <td>GET</td>
                <td>/v1/environments</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>CreateEnvironment</td>
                <td>POST</td>
                <td>/v1/environments</td>
                <td>environment</td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdateEnvironment</td>
                <td>PATCH</td>
                <td>/v1/{environment.name=environments/*}</td>
                <td>environment</td>
              </tr>
              
            
              
              
              <tr>
                <td>DeleteEnvironment</td>
                <td>DELETE</td>
                <td>/v1/{name=environments/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>UndeleteEnvironment</td>
                <td>POST</td>
                <td>/v1/{name=environments/*}:undelete</td>
                <td>*</td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    
      
      <div class="file-heading">
        <h2 id="v1/group.proto">v1/group.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.CreateGroupRequest">CreateGroupRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>group</td>
                  <td><a href="#bytebase.v1.Group">Group</a></td>
                  <td></td>
                  <td><p>The group to create. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DeleteGroupRequest">DeleteGroupRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the group to delete.
Format: groups/{email} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GetGroupRequest">GetGroupRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the group to retrieve.
Format: groups/{email} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Group">Group</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the group to retrieve.
Format: groups/{group}, group is an email. </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>description</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>creator</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name for the creator.
Format: users/hello@world.com </p></td>
                </tr>
              
                <tr>
                  <td>members</td>
                  <td><a href="#bytebase.v1.GroupMember">GroupMember</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>create_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>The timestamp when the group was created. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GroupMember">GroupMember</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>member</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Member is the principal who belong to this group.

Format: users/hello@world.com </p></td>
                </tr>
              
                <tr>
                  <td>role</td>
                  <td><a href="#bytebase.v1.GroupMember.Role">GroupMember.Role</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListGroupsRequest">ListGroupsRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of groups to return. The service may return fewer than
this value.
If unspecified, at most 50 groups will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A page token, received from a previous `ListGroups` call.
Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to `ListGroups` must match
the call that provided the page token. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListGroupsResponse">ListGroupsResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>groups</td>
                  <td><a href="#bytebase.v1.Group">Group</a></td>
                  <td>repeated</td>
                  <td><p>The groups from the specified request. </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdateGroupRequest">UpdateGroupRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>group</td>
                  <td><a href="#bytebase.v1.Group">Group</a></td>
                  <td></td>
                  <td><p>The group to update.

The group&#39;s `name` field is used to identify the group to update.
Format: groups/{email} </p></td>
                </tr>
              
                <tr>
                  <td>update_mask</td>
                  <td><a href="#google.protobuf.FieldMask">google.protobuf.FieldMask</a></td>
                  <td></td>
                  <td><p>The list of fields to update. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.v1.GroupMember.Role">GroupMember.Role</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>ROLE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>OWNER</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MEMBER</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
        <h3 id="bytebase.v1.GroupService">GroupService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>GetGroup</td>
                <td><a href="#bytebase.v1.GetGroupRequest">GetGroupRequest</a></td>
                <td><a href="#bytebase.v1.Group">Group</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ListGroups</td>
                <td><a href="#bytebase.v1.ListGroupsRequest">ListGroupsRequest</a></td>
                <td><a href="#bytebase.v1.ListGroupsResponse">ListGroupsResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CreateGroup</td>
                <td><a href="#bytebase.v1.CreateGroupRequest">CreateGroupRequest</a></td>
                <td><a href="#bytebase.v1.Group">Group</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UpdateGroup</td>
                <td><a href="#bytebase.v1.UpdateGroupRequest">UpdateGroupRequest</a></td>
                <td><a href="#bytebase.v1.Group">Group</a></td>
                <td><p>UpdateGroup updates the group.
Users with &#34;bb.groups.update&#34; permission on the workspace or the group owner can access this method.</p></td>
              </tr>
            
              <tr>
                <td>DeleteGroup</td>
                <td><a href="#bytebase.v1.DeleteGroupRequest">DeleteGroupRequest</a></td>
                <td><a href="#google.protobuf.Empty">.google.protobuf.Empty</a></td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>GetGroup</td>
                <td>GET</td>
                <td>/v1/{name=groups/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>ListGroups</td>
                <td>GET</td>
                <td>/v1/groups</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>CreateGroup</td>
                <td>POST</td>
                <td>/v1/groups</td>
                <td>group</td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdateGroup</td>
                <td>PATCH</td>
                <td>/v1/{group.name=groups/*}</td>
                <td>group</td>
              </tr>
              
            
              
              
              <tr>
                <td>DeleteGroup</td>
                <td>DELETE</td>
                <td>/v1/{name=groups/*}</td>
                <td></td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    
      
      <div class="file-heading">
        <h2 id="v1/idp_service.proto">v1/idp_service.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.CreateIdentityProviderRequest">CreateIdentityProviderRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>identity_provider</td>
                  <td><a href="#bytebase.v1.IdentityProvider">IdentityProvider</a></td>
                  <td></td>
                  <td><p>The identity provider to create. </p></td>
                </tr>
              
                <tr>
                  <td>identity_provider_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The ID to use for the identity provider, which will become the final component of
the identity provider&#39;s resource name.

This value should be 4-63 characters, and valid characters
are /[a-z][0-9]-/. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DeleteIdentityProviderRequest">DeleteIdentityProviderRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the identity provider to delete.
Format: idps/{identity_provider} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.FieldMapping">FieldMapping</h3>
        <p>FieldMapping saves the field names from user info API of identity provider.</p><p>As we save all raw json string of user info response data into `principal.idp_user_info`,</p><p>we can extract the relevant data based with `FieldMapping`.</p><p>e.g. For GitHub authenticated user API, it will return `login`, `name` and `email` in response.</p><p>Then the identifier of FieldMapping will be `login`, display_name will be `name`,</p><p>and email will be `email`.</p><p>reference: https://docs.github.com/en/rest/users/users?apiVersion=2022-11-28#get-the-authenticated-user</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>identifier</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Identifier is the field name of the unique identifier in 3rd-party idp user info. Required. </p></td>
                </tr>
              
                <tr>
                  <td>display_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>DisplayName is the field name of display name in 3rd-party idp user info. </p></td>
                </tr>
              
                <tr>
                  <td>email</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Email is the field name of primary email in 3rd-party idp user info. </p></td>
                </tr>
              
                <tr>
                  <td>phone</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Phone is the field name of primary phone in 3rd-party idp user info. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GetIdentityProviderRequest">GetIdentityProviderRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.IdentityProvider">IdentityProvider</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the identity provider.
Format: idps/{idp} </p></td>
                </tr>
              
                <tr>
                  <td>state</td>
                  <td><a href="#bytebase.v1.State">State</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>domain</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.v1.IdentityProviderType">IdentityProviderType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>config</td>
                  <td><a href="#bytebase.v1.IdentityProviderConfig">IdentityProviderConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.IdentityProviderConfig">IdentityProviderConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>oauth2_config</td>
                  <td><a href="#bytebase.v1.OAuth2IdentityProviderConfig">OAuth2IdentityProviderConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>oidc_config</td>
                  <td><a href="#bytebase.v1.OIDCIdentityProviderConfig">OIDCIdentityProviderConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>ldap_config</td>
                  <td><a href="#bytebase.v1.LDAPIdentityProviderConfig">LDAPIdentityProviderConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.LDAPIdentityProviderConfig">LDAPIdentityProviderConfig</h3>
        <p>LDAPIdentityProviderConfig is the structure for LDAP identity provider config.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>host</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Host is the hostname or IP address of the LDAP server, e.g.
&#34;ldap.example.com&#34;. </p></td>
                </tr>
              
                <tr>
                  <td>port</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>Port is the port number of the LDAP server, e.g. 389. When not set, the
default port of the corresponding security protocol will be used, i.e. 389
for StartTLS and 636 for LDAPS. </p></td>
                </tr>
              
                <tr>
                  <td>skip_tls_verify</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>SkipTLSVerify controls whether to skip TLS certificate verification. </p></td>
                </tr>
              
                <tr>
                  <td>bind_dn</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>BindDN is the DN of the user to bind as a service account to perform
search requests. </p></td>
                </tr>
              
                <tr>
                  <td>bind_password</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>BindPassword is the password of the user to bind as a service account. </p></td>
                </tr>
              
                <tr>
                  <td>base_dn</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>BaseDN is the base DN to search for users, e.g. &#34;ou=users,dc=example,dc=com&#34;. </p></td>
                </tr>
              
                <tr>
                  <td>user_filter</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>UserFilter is the filter to search for users, e.g. &#34;(uid=%s)&#34;. </p></td>
                </tr>
              
                <tr>
                  <td>security_protocol</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>SecurityProtocol is the security protocol to be used for establishing
connections with the LDAP server. It should be either StartTLS or LDAPS, and
cannot be empty. </p></td>
                </tr>
              
                <tr>
                  <td>field_mapping</td>
                  <td><a href="#bytebase.v1.FieldMapping">FieldMapping</a></td>
                  <td></td>
                  <td><p>FieldMapping is the mapping of the user attributes returned by the LDAP
server. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListIdentityProvidersRequest">ListIdentityProvidersRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of identity providers to return. The service may return fewer than
this value.
If unspecified, at most 50 will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A page token, received from a previous `ListIdentityProviders` call.
Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to `ListIdentityProviders` must match
the call that provided the page token. </p></td>
                </tr>
              
                <tr>
                  <td>show_deleted</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Show deleted identity providers if specified. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListIdentityProvidersResponse">ListIdentityProvidersResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>identity_providers</td>
                  <td><a href="#bytebase.v1.IdentityProvider">IdentityProvider</a></td>
                  <td>repeated</td>
                  <td><p>The identity providers from the specified request. </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.OAuth2IdentityProviderConfig">OAuth2IdentityProviderConfig</h3>
        <p>OAuth2IdentityProviderConfig is the structure for OAuth2 identity provider config.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>auth_url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>token_url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>user_info_url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>client_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>client_secret</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>scopes</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>field_mapping</td>
                  <td><a href="#bytebase.v1.FieldMapping">FieldMapping</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>skip_tls_verify</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>auth_style</td>
                  <td><a href="#bytebase.v1.OAuth2AuthStyle">OAuth2AuthStyle</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.OAuth2IdentityProviderTestRequestContext">OAuth2IdentityProviderTestRequestContext</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>code</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Authorize code from website. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.OIDCIdentityProviderConfig">OIDCIdentityProviderConfig</h3>
        <p>OIDCIdentityProviderConfig is the structure for OIDC identity provider config.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>issuer</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>client_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>client_secret</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>scopes</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>field_mapping</td>
                  <td><a href="#bytebase.v1.FieldMapping">FieldMapping</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>skip_tls_verify</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>auth_style</td>
                  <td><a href="#bytebase.v1.OAuth2AuthStyle">OAuth2AuthStyle</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.TestIdentityProviderRequest">TestIdentityProviderRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>identity_provider</td>
                  <td><a href="#bytebase.v1.IdentityProvider">IdentityProvider</a></td>
                  <td></td>
                  <td><p>The identity provider to test connection including uncreated. </p></td>
                </tr>
              
                <tr>
                  <td>oauth2_context</td>
                  <td><a href="#bytebase.v1.OAuth2IdentityProviderTestRequestContext">OAuth2IdentityProviderTestRequestContext</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.TestIdentityProviderResponse">TestIdentityProviderResponse</h3>
        <p></p>

        

        
      
        <h3 id="bytebase.v1.UndeleteIdentityProviderRequest">UndeleteIdentityProviderRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the deleted identity provider.
Format: idps/{identity_provider} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdateIdentityProviderRequest">UpdateIdentityProviderRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>identity_provider</td>
                  <td><a href="#bytebase.v1.IdentityProvider">IdentityProvider</a></td>
                  <td></td>
                  <td><p>The identity provider to update.

The identity provider&#39;s `name` field is used to identify the identity provider to update.
Format: idps/{identity_provider} </p></td>
                </tr>
              
                <tr>
                  <td>update_mask</td>
                  <td><a href="#google.protobuf.FieldMask">google.protobuf.FieldMask</a></td>
                  <td></td>
                  <td><p>The list of fields to update. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.v1.IdentityProviderType">IdentityProviderType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>IDENTITY_PROVIDER_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>OAUTH2</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>OIDC</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>LDAP</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.OAuth2AuthStyle">OAuth2AuthStyle</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>OAUTH2_AUTH_STYLE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>IN_PARAMS</td>
                <td>1</td>
                <td><p>IN_PARAMS sends the &#34;client_id&#34; and &#34;client_secret&#34; in the POST body
as application/x-www-form-urlencoded parameters.</p></td>
              </tr>
            
              <tr>
                <td>IN_HEADER</td>
                <td>2</td>
                <td><p>IN_HEADER sends the client_id and client_password using HTTP Basic Authorization.
This is an optional style described in the OAuth2 RFC 6749 section 2.3.1.</p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
        <h3 id="bytebase.v1.IdentityProviderService">IdentityProviderService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>GetIdentityProvider</td>
                <td><a href="#bytebase.v1.GetIdentityProviderRequest">GetIdentityProviderRequest</a></td>
                <td><a href="#bytebase.v1.IdentityProvider">IdentityProvider</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ListIdentityProviders</td>
                <td><a href="#bytebase.v1.ListIdentityProvidersRequest">ListIdentityProvidersRequest</a></td>
                <td><a href="#bytebase.v1.ListIdentityProvidersResponse">ListIdentityProvidersResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CreateIdentityProvider</td>
                <td><a href="#bytebase.v1.CreateIdentityProviderRequest">CreateIdentityProviderRequest</a></td>
                <td><a href="#bytebase.v1.IdentityProvider">IdentityProvider</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UpdateIdentityProvider</td>
                <td><a href="#bytebase.v1.UpdateIdentityProviderRequest">UpdateIdentityProviderRequest</a></td>
                <td><a href="#bytebase.v1.IdentityProvider">IdentityProvider</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DeleteIdentityProvider</td>
                <td><a href="#bytebase.v1.DeleteIdentityProviderRequest">DeleteIdentityProviderRequest</a></td>
                <td><a href="#google.protobuf.Empty">.google.protobuf.Empty</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UndeleteIdentityProvider</td>
                <td><a href="#bytebase.v1.UndeleteIdentityProviderRequest">UndeleteIdentityProviderRequest</a></td>
                <td><a href="#bytebase.v1.IdentityProvider">IdentityProvider</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TestIdentityProvider</td>
                <td><a href="#bytebase.v1.TestIdentityProviderRequest">TestIdentityProviderRequest</a></td>
                <td><a href="#bytebase.v1.TestIdentityProviderResponse">TestIdentityProviderResponse</a></td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>GetIdentityProvider</td>
                <td>GET</td>
                <td>/v1/{name=idps/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>ListIdentityProviders</td>
                <td>GET</td>
                <td>/v1/idps</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>CreateIdentityProvider</td>
                <td>POST</td>
                <td>/v1/idps</td>
                <td>identity_provider</td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdateIdentityProvider</td>
                <td>PATCH</td>
                <td>/v1/{identity_provider.name=idps/*}</td>
                <td>identity_provider</td>
              </tr>
              
            
              
              
              <tr>
                <td>DeleteIdentityProvider</td>
                <td>DELETE</td>
                <td>/v1/{name=idps/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>UndeleteIdentityProvider</td>
                <td>POST</td>
                <td>/v1/{name=idps/*}:undelete</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>TestIdentityProvider</td>
                <td>POST</td>
                <td>/v1/idps/*:test</td>
                <td>*</td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    
      
      <div class="file-heading">
        <h2 id="v1/issue_service.proto">v1/issue_service.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.ApprovalFlow">ApprovalFlow</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>steps</td>
                  <td><a href="#bytebase.v1.ApprovalStep">ApprovalStep</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ApprovalNode">ApprovalNode</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.v1.ApprovalNode.Type">ApprovalNode.Type</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>group_value</td>
                  <td><a href="#bytebase.v1.ApprovalNode.GroupValue">ApprovalNode.GroupValue</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>role</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: roles/{role} </p></td>
                </tr>
              
                <tr>
                  <td>external_node_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ApprovalStep">ApprovalStep</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.v1.ApprovalStep.Type">ApprovalStep.Type</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>nodes</td>
                  <td><a href="#bytebase.v1.ApprovalNode">ApprovalNode</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ApprovalTemplate">ApprovalTemplate</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>flow</td>
                  <td><a href="#bytebase.v1.ApprovalFlow">ApprovalFlow</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>description</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>creator</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the creator in users/{email} format.
TODO: we should mark it as OUTPUT_ONLY, but currently the frontend will post the approval setting with creator. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ApproveIssueRequest">ApproveIssueRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the issue to add an approver.
Format: projects/{project}/issues/{issue} </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.BatchUpdateIssuesStatusRequest">BatchUpdateIssuesStatusRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The parent resource shared by all issues being updated.
Format: projects/{project}
If the operation spans parents, a dash (-) may be accepted as a wildcard.
We only support updating the status of databases for now. </p></td>
                </tr>
              
                <tr>
                  <td>issues</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The list of issues to update.
Format: projects/{project}/issues/{issue} </p></td>
                </tr>
              
                <tr>
                  <td>status</td>
                  <td><a href="#bytebase.v1.IssueStatus">IssueStatus</a></td>
                  <td></td>
                  <td><p>The new status. </p></td>
                </tr>
              
                <tr>
                  <td>reason</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.BatchUpdateIssuesStatusResponse">BatchUpdateIssuesStatusResponse</h3>
        <p></p>

        

        
      
        <h3 id="bytebase.v1.CreateIssueCommentRequest">CreateIssueCommentRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The issue name
Format: projects/{project}/issues/{issue} </p></td>
                </tr>
              
                <tr>
                  <td>issue_comment</td>
                  <td><a href="#bytebase.v1.IssueComment">IssueComment</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.CreateIssueRequest">CreateIssueRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The parent, which owns this collection of issues.
Format: projects/{project} </p></td>
                </tr>
              
                <tr>
                  <td>issue</td>
                  <td><a href="#bytebase.v1.Issue">Issue</a></td>
                  <td></td>
                  <td><p>The issue to create. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GetIssueRequest">GetIssueRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the issue to retrieve.
Format: projects/{project}/issues/{issue} </p></td>
                </tr>
              
                <tr>
                  <td>force</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GrantRequest">GrantRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>role</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The requested role.
Format: roles/EXPORTER. </p></td>
                </tr>
              
                <tr>
                  <td>user</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The user to be granted.
Format: users/{email}. </p></td>
                </tr>
              
                <tr>
                  <td>condition</td>
                  <td><a href="#google.type.Expr">google.type.Expr</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>expiration</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Issue">Issue</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the issue.
Format: projects/{project}/issues/{issue} </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>description</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.v1.Issue.Type">Issue.Type</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>status</td>
                  <td><a href="#bytebase.v1.IssueStatus">IssueStatus</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>approvers</td>
                  <td><a href="#bytebase.v1.Issue.Approver">Issue.Approver</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>approval_templates</td>
                  <td><a href="#bytebase.v1.ApprovalTemplate">ApprovalTemplate</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>approval_finding_done</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>If the value is `false`, it means that the backend is still finding matching approval templates.
If `true`, approval_templates &amp; approvers &amp; approval_finding_error are available. </p></td>
                </tr>
              
                <tr>
                  <td>approval_finding_error</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>subscribers</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The subscribers.
Format: users/hello@world.com </p></td>
                </tr>
              
                <tr>
                  <td>creator</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: users/hello@world.com </p></td>
                </tr>
              
                <tr>
                  <td>create_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>update_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>plan</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The plan associated with the issue.
Can be empty.
Format: projects/{project}/plans/{plan} </p></td>
                </tr>
              
                <tr>
                  <td>rollout</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The rollout associated with the issue.
Can be empty.
Format: projects/{project}/rollouts/{rollout} </p></td>
                </tr>
              
                <tr>
                  <td>grant_request</td>
                  <td><a href="#bytebase.v1.GrantRequest">GrantRequest</a></td>
                  <td></td>
                  <td><p>Used if the issue type is GRANT_REQUEST. </p></td>
                </tr>
              
                <tr>
                  <td>releasers</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The releasers of the pending stage of the issue rollout, judging
from the rollout policy.
If the policy is auto rollout, the releasers are the project owners and the issue creator.
Format:
- roles/workspaceOwner
- roles/workspaceDBA
- roles/projectOwner
- roles/projectReleaser
- users/{email} </p></td>
                </tr>
              
                <tr>
                  <td>risk_level</td>
                  <td><a href="#bytebase.v1.Issue.RiskLevel">Issue.RiskLevel</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>task_status_count</td>
                  <td><a href="#bytebase.v1.Issue.TaskStatusCountEntry">Issue.TaskStatusCountEntry</a></td>
                  <td>repeated</td>
                  <td><p>The status count of the issue.
Keys are the following:
- NOT_STARTED
- SKIPPED
- PENDING
- RUNNING
- DONE
- FAILED
- CANCELED </p></td>
                </tr>
              
                <tr>
                  <td>labels</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Issue.Approver">Issue.Approver</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>status</td>
                  <td><a href="#bytebase.v1.Issue.Approver.Status">Issue.Approver.Status</a></td>
                  <td></td>
                  <td><p>The new status. </p></td>
                </tr>
              
                <tr>
                  <td>principal</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: users/hello@world.com </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Issue.TaskStatusCountEntry">Issue.TaskStatusCountEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.IssueComment">IssueComment</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: projects/{project}/issues/{issue}/issueComments/{issueComment-uid} </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>payload</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>TODO: use struct message instead. </p></td>
                </tr>
              
                <tr>
                  <td>create_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>update_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>creator</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: users/{email} </p></td>
                </tr>
              
                <tr>
                  <td>approval</td>
                  <td><a href="#bytebase.v1.IssueComment.Approval">IssueComment.Approval</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>issue_update</td>
                  <td><a href="#bytebase.v1.IssueComment.IssueUpdate">IssueComment.IssueUpdate</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>stage_end</td>
                  <td><a href="#bytebase.v1.IssueComment.StageEnd">IssueComment.StageEnd</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>task_update</td>
                  <td><a href="#bytebase.v1.IssueComment.TaskUpdate">IssueComment.TaskUpdate</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>task_prior_backup</td>
                  <td><a href="#bytebase.v1.IssueComment.TaskPriorBackup">IssueComment.TaskPriorBackup</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.IssueComment.Approval">IssueComment.Approval</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>status</td>
                  <td><a href="#bytebase.v1.IssueComment.Approval.Status">IssueComment.Approval.Status</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.IssueComment.IssueUpdate">IssueComment.IssueUpdate</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>from_title</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>to_title</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>from_description</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>to_description</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>from_status</td>
                  <td><a href="#bytebase.v1.IssueStatus">IssueStatus</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>to_status</td>
                  <td><a href="#bytebase.v1.IssueStatus">IssueStatus</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>from_labels</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>to_labels</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.IssueComment.StageEnd">IssueComment.StageEnd</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>stage</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.IssueComment.TaskPriorBackup">IssueComment.TaskPriorBackup</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>task</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>tables</td>
                  <td><a href="#bytebase.v1.IssueComment.TaskPriorBackup.Table">IssueComment.TaskPriorBackup.Table</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>original_line</td>
                  <td><a href="#int32">int32</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>database</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.IssueComment.TaskPriorBackup.Table">IssueComment.TaskPriorBackup.Table</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>table</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.IssueComment.TaskUpdate">IssueComment.TaskUpdate</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>tasks</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>from_sheet</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p>Format: projects/{project}/sheets/{sheet} </p></td>
                </tr>
              
                <tr>
                  <td>to_sheet</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p>Format: projects/{project}/sheets/{sheet} </p></td>
                </tr>
              
                <tr>
                  <td>from_earliest_allowed_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>to_earliest_allowed_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>to_status</td>
                  <td><a href="#bytebase.v1.IssueComment.TaskUpdate.Status">IssueComment.TaskUpdate.Status</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListIssueCommentsRequest">ListIssueCommentsRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: projects/{projects}/issues/{issue} </p></td>
                </tr>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of issues to return. The service may return fewer than
this value.
If unspecified, at most 50 issues will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A page token, received from a previous `ListIssues` call.
Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to `ListIssues` must match
the call that provided the page token. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListIssueCommentsResponse">ListIssueCommentsResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>issue_comments</td>
                  <td><a href="#bytebase.v1.IssueComment">IssueComment</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListIssuesRequest">ListIssuesRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The parent, which owns this collection of issues.
Format: projects/{project} </p></td>
                </tr>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of issues to return. The service may return fewer than
this value.
If unspecified, at most 50 issues will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A page token, received from a previous `ListIssues` call.
Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to `ListIssues` must match
the call that provided the page token. </p></td>
                </tr>
              
                <tr>
                  <td>filter</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Filter is used to filter issues returned in the list. </p></td>
                </tr>
              
                <tr>
                  <td>query</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Query is the query statement. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListIssuesResponse">ListIssuesResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>issues</td>
                  <td><a href="#bytebase.v1.Issue">Issue</a></td>
                  <td>repeated</td>
                  <td><p>The issues from the specified request. </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.RejectIssueRequest">RejectIssueRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the issue to add an rejection.
Format: projects/{project}/issues/{issue} </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.RequestIssueRequest">RequestIssueRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the issue to request a issue.
Format: projects/{project}/issues/{issue} </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SearchIssuesRequest">SearchIssuesRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The parent, which owns this collection of issues.
Format: projects/{project}
Use &#34;projects/-&#34; to list all issues from all projects. </p></td>
                </tr>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of issues to return. The service may return fewer than
this value.
If unspecified, at most 50 issues will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A page token, received from a previous `ListIssues` call.
Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to `ListIssues` must match
the call that provided the page token. </p></td>
                </tr>
              
                <tr>
                  <td>filter</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Filter is used to filter issues returned in the list. </p></td>
                </tr>
              
                <tr>
                  <td>query</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Query is the query statement. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SearchIssuesResponse">SearchIssuesResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>issues</td>
                  <td><a href="#bytebase.v1.Issue">Issue</a></td>
                  <td>repeated</td>
                  <td><p>The issues from the specified request. </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdateIssueCommentRequest">UpdateIssueCommentRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The issue name
Format: projects/{project}/issues/{issue} </p></td>
                </tr>
              
                <tr>
                  <td>issue_comment</td>
                  <td><a href="#bytebase.v1.IssueComment">IssueComment</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>update_mask</td>
                  <td><a href="#google.protobuf.FieldMask">google.protobuf.FieldMask</a></td>
                  <td></td>
                  <td><p>The list of fields to update. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdateIssueRequest">UpdateIssueRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>issue</td>
                  <td><a href="#bytebase.v1.Issue">Issue</a></td>
                  <td></td>
                  <td><p>The issue to update.

The issue&#39;s `name` field is used to identify the issue to update.
Format: projects/{project}/issues/{issue} </p></td>
                </tr>
              
                <tr>
                  <td>update_mask</td>
                  <td><a href="#google.protobuf.FieldMask">google.protobuf.FieldMask</a></td>
                  <td></td>
                  <td><p>The list of fields to update. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.v1.ApprovalNode.GroupValue">ApprovalNode.GroupValue</h3>
        <p>The predefined user groups are:</p><p>- WORKSPACE_OWNER</p><p>- WORKSPACE_DBA</p><p>- PROJECT_OWNER</p><p>- PROJECT_MEMBER</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>GROUP_VALUE_UNSPECIFILED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>WORKSPACE_OWNER</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>WORKSPACE_DBA</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PROJECT_OWNER</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PROJECT_MEMBER</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.ApprovalNode.Type">ApprovalNode.Type</h3>
        <p>Type of the ApprovalNode.</p><p>type determines who should approve this node.</p><p>ANY_IN_GROUP means the ApprovalNode can be approved by an user from our predefined user group.</p><p>See GroupValue below for the predefined user groups.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ANY_IN_GROUP</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.ApprovalStep.Type">ApprovalStep.Type</h3>
        <p>Type of the ApprovalStep</p><p>ALL means every node must be approved to proceed.</p><p>ANY means approving any node will proceed.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ALL</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ANY</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.Issue.Approver.Status">Issue.Approver.Status</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>STATUS_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PENDING</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>APPROVED</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>REJECTED</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.Issue.RiskLevel">Issue.RiskLevel</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>RISK_LEVEL_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>LOW</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MODERATE</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>HIGH</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.Issue.Type">Issue.Type</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DATABASE_CHANGE</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>GRANT_REQUEST</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DATABASE_DATA_EXPORT</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.IssueComment.Approval.Status">IssueComment.Approval.Status</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>STATUS_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PENDING</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>APPROVED</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>REJECTED</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.IssueComment.TaskUpdate.Status">IssueComment.TaskUpdate.Status</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>STATUS_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PENDING</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>RUNNING</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DONE</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>FAILED</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SKIPPED</td>
                <td>5</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CANCELED</td>
                <td>6</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.IssueStatus">IssueStatus</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>ISSUE_STATUS_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>OPEN</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DONE</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CANCELED</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
        <h3 id="bytebase.v1.IssueService">IssueService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>GetIssue</td>
                <td><a href="#bytebase.v1.GetIssueRequest">GetIssueRequest</a></td>
                <td><a href="#bytebase.v1.Issue">Issue</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CreateIssue</td>
                <td><a href="#bytebase.v1.CreateIssueRequest">CreateIssueRequest</a></td>
                <td><a href="#bytebase.v1.Issue">Issue</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ListIssues</td>
                <td><a href="#bytebase.v1.ListIssuesRequest">ListIssuesRequest</a></td>
                <td><a href="#bytebase.v1.ListIssuesResponse">ListIssuesResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SearchIssues</td>
                <td><a href="#bytebase.v1.SearchIssuesRequest">SearchIssuesRequest</a></td>
                <td><a href="#bytebase.v1.SearchIssuesResponse">SearchIssuesResponse</a></td>
                <td><p>Search for issues that the caller has the bb.issues.get permission on and also satisfy the specified filter &amp; query.</p></td>
              </tr>
            
              <tr>
                <td>UpdateIssue</td>
                <td><a href="#bytebase.v1.UpdateIssueRequest">UpdateIssueRequest</a></td>
                <td><a href="#bytebase.v1.Issue">Issue</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ListIssueComments</td>
                <td><a href="#bytebase.v1.ListIssueCommentsRequest">ListIssueCommentsRequest</a></td>
                <td><a href="#bytebase.v1.ListIssueCommentsResponse">ListIssueCommentsResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CreateIssueComment</td>
                <td><a href="#bytebase.v1.CreateIssueCommentRequest">CreateIssueCommentRequest</a></td>
                <td><a href="#bytebase.v1.IssueComment">IssueComment</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UpdateIssueComment</td>
                <td><a href="#bytebase.v1.UpdateIssueCommentRequest">UpdateIssueCommentRequest</a></td>
                <td><a href="#bytebase.v1.IssueComment">IssueComment</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>BatchUpdateIssuesStatus</td>
                <td><a href="#bytebase.v1.BatchUpdateIssuesStatusRequest">BatchUpdateIssuesStatusRequest</a></td>
                <td><a href="#bytebase.v1.BatchUpdateIssuesStatusResponse">BatchUpdateIssuesStatusResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ApproveIssue</td>
                <td><a href="#bytebase.v1.ApproveIssueRequest">ApproveIssueRequest</a></td>
                <td><a href="#bytebase.v1.Issue">Issue</a></td>
                <td><p>ApproveIssue approves the issue.
The access is based on approval flow.</p></td>
              </tr>
            
              <tr>
                <td>RejectIssue</td>
                <td><a href="#bytebase.v1.RejectIssueRequest">RejectIssueRequest</a></td>
                <td><a href="#bytebase.v1.Issue">Issue</a></td>
                <td><p>RejectIssue rejects the issue.
The access is based on approval flow.</p></td>
              </tr>
            
              <tr>
                <td>RequestIssue</td>
                <td><a href="#bytebase.v1.RequestIssueRequest">RequestIssueRequest</a></td>
                <td><a href="#bytebase.v1.Issue">Issue</a></td>
                <td><p>RequestIssue requests the issue.
The access is based on approval flow.</p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>GetIssue</td>
                <td>GET</td>
                <td>/v1/{name=projects/*/issues/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>CreateIssue</td>
                <td>POST</td>
                <td>/v1/{parent=projects/*}/issues</td>
                <td>issue</td>
              </tr>
              
            
              
              
              <tr>
                <td>ListIssues</td>
                <td>GET</td>
                <td>/v1/{parent=projects/*}/issues</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>SearchIssues</td>
                <td>POST</td>
                <td>/v1/{parent=projects/*}/issues:search</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdateIssue</td>
                <td>PATCH</td>
                <td>/v1/{issue.name=projects/*/issues/*}</td>
                <td>issue</td>
              </tr>
              
            
              
              
              <tr>
                <td>ListIssueComments</td>
                <td>GET</td>
                <td>/v1/{parent=projects/*/issues/*}/issueComments</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>CreateIssueComment</td>
                <td>POST</td>
                <td>/v1/{parent=projects/*/issues/*}:comment</td>
                <td>issue_comment</td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdateIssueComment</td>
                <td>PATCH</td>
                <td>/v1/{parent=projects/*/issues/*}:comment</td>
                <td>issue_comment</td>
              </tr>
              
            
              
              
              <tr>
                <td>BatchUpdateIssuesStatus</td>
                <td>POST</td>
                <td>/v1/{parent=projects/*}/issues:batchUpdateStatus</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>ApproveIssue</td>
                <td>POST</td>
                <td>/v1/{name=projects/*/issues/*}:approve</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>RejectIssue</td>
                <td>POST</td>
                <td>/v1/{name=projects/*/issues/*}:reject</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>RequestIssue</td>
                <td>POST</td>
                <td>/v1/{name=projects/*/issues/*}:request</td>
                <td>*</td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    
      
      <div class="file-heading">
        <h2 id="v1/org_policy_service.proto">v1/org_policy_service.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.CreatePolicyRequest">CreatePolicyRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The parent resource where this instance will be created.
Workspace resource name: &#34;&#34;.
Environment resource name: environments/environment-id.
Instance resource name: instances/instance-id.
Database resource name: instances/instance-id/databases/database-name. </p></td>
                </tr>
              
                <tr>
                  <td>policy</td>
                  <td><a href="#bytebase.v1.Policy">Policy</a></td>
                  <td></td>
                  <td><p>The policy to create. </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.v1.PolicyType">PolicyType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DataSourceQueryPolicy">DataSourceQueryPolicy</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>admin_data_source_restriction</td>
                  <td><a href="#bytebase.v1.DataSourceQueryPolicy.Restriction">DataSourceQueryPolicy.Restriction</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DeletePolicyRequest">DeletePolicyRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The policy&#39;s `name` field is used to identify the instance to update.
Format: {resource name}/policies/{policy type}
Workspace resource name: &#34;&#34;.
Environment resource name: environments/environment-id.
Instance resource name: instances/instance-id.
Database resource name: instances/instance-id/databases/database-name. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DisableCopyDataPolicy">DisableCopyDataPolicy</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>active</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GetPolicyRequest">GetPolicyRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the policy to retrieve.
Format: {resource type}/{resource id}/policies/{policy type} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListPoliciesRequest">ListPoliciesRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The parent, which owns this collection of policies.
Format: {resource type}/{resource id} </p></td>
                </tr>
              
                <tr>
                  <td>policy_type</td>
                  <td><a href="#bytebase.v1.PolicyType">PolicyType</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of policies to return. The service may return fewer than
this value.
If unspecified, at most 50 policies will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A page token, received from a previous `GetPolicies` call.
Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to `GetPolicies` must match
the call that provided the page token. </p></td>
                </tr>
              
                <tr>
                  <td>show_deleted</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Show deleted policies if specified. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListPoliciesResponse">ListPoliciesResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>policies</td>
                  <td><a href="#bytebase.v1.Policy">Policy</a></td>
                  <td>repeated</td>
                  <td><p>The policies from the specified request. </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.MaskData">MaskData</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>table</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>column</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>masking_level</td>
                  <td><a href="#bytebase.v1.MaskingLevel">MaskingLevel</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>full_masking_algorithm_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>partial_masking_algorithm_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.MaskingExceptionPolicy">MaskingExceptionPolicy</h3>
        <p>MaskingExceptionPolicy is the allowlist of users who can access sensitive data.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>masking_exceptions</td>
                  <td><a href="#bytebase.v1.MaskingExceptionPolicy.MaskingException">MaskingExceptionPolicy.MaskingException</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.MaskingExceptionPolicy.MaskingException">MaskingExceptionPolicy.MaskingException</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>action</td>
                  <td><a href="#bytebase.v1.MaskingExceptionPolicy.MaskingException.Action">MaskingExceptionPolicy.MaskingException.Action</a></td>
                  <td></td>
                  <td><p>action is the action that the user can access sensitive data. </p></td>
                </tr>
              
                <tr>
                  <td>masking_level</td>
                  <td><a href="#bytebase.v1.MaskingLevel">MaskingLevel</a></td>
                  <td></td>
                  <td><p>Level is the masking level that the user can access sensitive data. </p></td>
                </tr>
              
                <tr>
                  <td>member</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Member is the principal who bind to this exception policy instance.

- `user:{email}`: An email address that represents a specific Bytebase account. For example, `alice@example.com`.
- `group:{email}`: An email address for group. </p></td>
                </tr>
              
                <tr>
                  <td>condition</td>
                  <td><a href="#google.type.Expr">google.type.Expr</a></td>
                  <td></td>
                  <td><p>The condition that is associated with this exception policy instance. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.MaskingPolicy">MaskingPolicy</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>mask_data</td>
                  <td><a href="#bytebase.v1.MaskData">MaskData</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.MaskingRulePolicy">MaskingRulePolicy</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>rules</td>
                  <td><a href="#bytebase.v1.MaskingRulePolicy.MaskingRule">MaskingRulePolicy.MaskingRule</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.MaskingRulePolicy.MaskingRule">MaskingRulePolicy.MaskingRule</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A unique identifier for a node in UUID format. </p></td>
                </tr>
              
                <tr>
                  <td>condition</td>
                  <td><a href="#google.type.Expr">google.type.Expr</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>masking_level</td>
                  <td><a href="#bytebase.v1.MaskingLevel">MaskingLevel</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Policy">Policy</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the policy.
Format: {resource name}/policies/{policy type}
Workspace resource name: &#34;&#34;.
Environment resource name: environments/environment-id.
Instance resource name: instances/instance-id.
Database resource name: instances/instance-id/databases/database-name. </p></td>
                </tr>
              
                <tr>
                  <td>inherit_from_parent</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.v1.PolicyType">PolicyType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>rollout_policy</td>
                  <td><a href="#bytebase.v1.RolloutPolicy">RolloutPolicy</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>masking_policy</td>
                  <td><a href="#bytebase.v1.MaskingPolicy">MaskingPolicy</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>slow_query_policy</td>
                  <td><a href="#bytebase.v1.SlowQueryPolicy">SlowQueryPolicy</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>disable_copy_data_policy</td>
                  <td><a href="#bytebase.v1.DisableCopyDataPolicy">DisableCopyDataPolicy</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>masking_rule_policy</td>
                  <td><a href="#bytebase.v1.MaskingRulePolicy">MaskingRulePolicy</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>masking_exception_policy</td>
                  <td><a href="#bytebase.v1.MaskingExceptionPolicy">MaskingExceptionPolicy</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>restrict_issue_creation_for_sql_review_policy</td>
                  <td><a href="#bytebase.v1.RestrictIssueCreationForSQLReviewPolicy">RestrictIssueCreationForSQLReviewPolicy</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>tag_policy</td>
                  <td><a href="#bytebase.v1.TagPolicy">TagPolicy</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>data_source_query_policy</td>
                  <td><a href="#bytebase.v1.DataSourceQueryPolicy">DataSourceQueryPolicy</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>enforce</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>resource_type</td>
                  <td><a href="#bytebase.v1.PolicyResourceType">PolicyResourceType</a></td>
                  <td></td>
                  <td><p>The resource type for the policy. </p></td>
                </tr>
              
                <tr>
                  <td>resource_uid</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The system-assigned, unique identifier for the resource. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.RestrictIssueCreationForSQLReviewPolicy">RestrictIssueCreationForSQLReviewPolicy</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>disallow</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.RolloutPolicy">RolloutPolicy</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>automatic</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>workspace_roles</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>project_roles</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>issue_roles</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>roles/LAST_APPROVER
roles/CREATOR </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SQLReviewRule">SQLReviewRule</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>type</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>level</td>
                  <td><a href="#bytebase.v1.SQLReviewRuleLevel">SQLReviewRuleLevel</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>payload</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>engine</td>
                  <td><a href="#bytebase.v1.Engine">Engine</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SlowQueryPolicy">SlowQueryPolicy</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>active</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.TagPolicy">TagPolicy</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>tags</td>
                  <td><a href="#bytebase.v1.TagPolicy.TagsEntry">TagPolicy.TagsEntry</a></td>
                  <td>repeated</td>
                  <td><p>tags is the key - value map for resources.
for example, the environment resource can have the sql review config tag, like &#34;bb.tag.review_config&#34;: &#34;reviewConfigs/{review config resource id}&#34; </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.TagPolicy.TagsEntry">TagPolicy.TagsEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdatePolicyRequest">UpdatePolicyRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>policy</td>
                  <td><a href="#bytebase.v1.Policy">Policy</a></td>
                  <td></td>
                  <td><p>The policy to update.

The policy&#39;s `name` field is used to identify the instance to update.
Format: {resource name}/policies/{policy type}
Workspace resource name: &#34;&#34;.
Environment resource name: environments/environment-id.
Instance resource name: instances/instance-id.
Database resource name: instances/instance-id/databases/database-name. </p></td>
                </tr>
              
                <tr>
                  <td>update_mask</td>
                  <td><a href="#google.protobuf.FieldMask">google.protobuf.FieldMask</a></td>
                  <td></td>
                  <td><p>The list of fields to update. </p></td>
                </tr>
              
                <tr>
                  <td>allow_missing</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>If set to true, and the policy is not found, a new policy will be created.
In this situation, `update_mask` is ignored. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.v1.DataSourceQueryPolicy.Restriction">DataSourceQueryPolicy.Restriction</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>RESTRICTION_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>FALLBACK</td>
                <td>1</td>
                <td><p>Allow to query admin data sources when there is no read-only data source.</p></td>
              </tr>
            
              <tr>
                <td>DISALLOW</td>
                <td>2</td>
                <td><p>Disallow to query admin data sources.</p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.MaskingExceptionPolicy.MaskingException.Action">MaskingExceptionPolicy.MaskingException.Action</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>ACTION_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>QUERY</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>EXPORT</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.PolicyResourceType">PolicyResourceType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>RESOURCE_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>WORKSPACE</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ENVIRONMENT</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PROJECT</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>INSTANCE</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DATABASE</td>
                <td>5</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.PolicyType">PolicyType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>POLICY_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ROLLOUT_POLICY</td>
                <td>11</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MASKING</td>
                <td>5</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SLOW_QUERY</td>
                <td>7</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DISABLE_COPY_DATA</td>
                <td>8</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MASKING_RULE</td>
                <td>9</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MASKING_EXCEPTION</td>
                <td>10</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>RESTRICT_ISSUE_CREATION_FOR_SQL_REVIEW</td>
                <td>12</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TAG</td>
                <td>13</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DATA_SOURCE_QUERY</td>
                <td>14</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.SQLReviewRuleLevel">SQLReviewRuleLevel</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>LEVEL_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ERROR</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>WARNING</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DISABLED</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
        <h3 id="bytebase.v1.OrgPolicyService">OrgPolicyService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>GetPolicy</td>
                <td><a href="#bytebase.v1.GetPolicyRequest">GetPolicyRequest</a></td>
                <td><a href="#bytebase.v1.Policy">Policy</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ListPolicies</td>
                <td><a href="#bytebase.v1.ListPoliciesRequest">ListPoliciesRequest</a></td>
                <td><a href="#bytebase.v1.ListPoliciesResponse">ListPoliciesResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CreatePolicy</td>
                <td><a href="#bytebase.v1.CreatePolicyRequest">CreatePolicyRequest</a></td>
                <td><a href="#bytebase.v1.Policy">Policy</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UpdatePolicy</td>
                <td><a href="#bytebase.v1.UpdatePolicyRequest">UpdatePolicyRequest</a></td>
                <td><a href="#bytebase.v1.Policy">Policy</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DeletePolicy</td>
                <td><a href="#bytebase.v1.DeletePolicyRequest">DeletePolicyRequest</a></td>
                <td><a href="#google.protobuf.Empty">.google.protobuf.Empty</a></td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>GetPolicy</td>
                <td>GET</td>
                <td>/v1/{name=policies/*}</td>
                <td></td>
              </tr>
              
              <tr>
                <td>GetPolicy</td>
                <td>GET</td>
                <td>/v1/{name=projects/*/policies/*}</td>
                <td></td>
              </tr>
              
              <tr>
                <td>GetPolicy</td>
                <td>GET</td>
                <td>/v1/{name=environments/*/policies/*}</td>
                <td></td>
              </tr>
              
              <tr>
                <td>GetPolicy</td>
                <td>GET</td>
                <td>/v1/{name=instances/*/policies/*}</td>
                <td></td>
              </tr>
              
              <tr>
                <td>GetPolicy</td>
                <td>GET</td>
                <td>/v1/{name=instances/*/databases/*/policies/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>ListPolicies</td>
                <td>GET</td>
                <td>/v1/policies</td>
                <td></td>
              </tr>
              
              <tr>
                <td>ListPolicies</td>
                <td>GET</td>
                <td>/v1/{parent=projects/*}/policies</td>
                <td></td>
              </tr>
              
              <tr>
                <td>ListPolicies</td>
                <td>GET</td>
                <td>/v1/{parent=environments/*}/policies</td>
                <td></td>
              </tr>
              
              <tr>
                <td>ListPolicies</td>
                <td>GET</td>
                <td>/v1/{parent=instances/*}/policies</td>
                <td></td>
              </tr>
              
              <tr>
                <td>ListPolicies</td>
                <td>GET</td>
                <td>/v1/{parent=instances/*/databases/*}/policies</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>CreatePolicy</td>
                <td>POST</td>
                <td>/v1/policies</td>
                <td>policy</td>
              </tr>
              
              <tr>
                <td>CreatePolicy</td>
                <td>POST</td>
                <td>/v1/{parent=projects/*}/policies</td>
                <td>policy</td>
              </tr>
              
              <tr>
                <td>CreatePolicy</td>
                <td>POST</td>
                <td>/v1/{parent=environments/*}/policies</td>
                <td>policy</td>
              </tr>
              
              <tr>
                <td>CreatePolicy</td>
                <td>POST</td>
                <td>/v1/{parent=instances/*}/policies</td>
                <td>policy</td>
              </tr>
              
              <tr>
                <td>CreatePolicy</td>
                <td>POST</td>
                <td>/v1/{parent=instances/*/databases/*}/policies</td>
                <td>policy</td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdatePolicy</td>
                <td>PATCH</td>
                <td>/v1/{policy.name=policies/*}</td>
                <td>policy</td>
              </tr>
              
              <tr>
                <td>UpdatePolicy</td>
                <td>PATCH</td>
                <td>/v1/{policy.name=projects/*/policies/*}</td>
                <td>policy</td>
              </tr>
              
              <tr>
                <td>UpdatePolicy</td>
                <td>PATCH</td>
                <td>/v1/{policy.name=environments/*/policies/*}</td>
                <td>policy</td>
              </tr>
              
              <tr>
                <td>UpdatePolicy</td>
                <td>PATCH</td>
                <td>/v1/{policy.name=instances/*/policies/*}</td>
                <td>policy</td>
              </tr>
              
              <tr>
                <td>UpdatePolicy</td>
                <td>PATCH</td>
                <td>/v1/{policy.name=instances/*/databases/*/policies/*}</td>
                <td>policy</td>
              </tr>
              
            
              
              
              <tr>
                <td>DeletePolicy</td>
                <td>DELETE</td>
                <td>/v1/{name=policies/*}</td>
                <td></td>
              </tr>
              
              <tr>
                <td>DeletePolicy</td>
                <td>DELETE</td>
                <td>/v1/{name=projects/*/policies/*}</td>
                <td></td>
              </tr>
              
              <tr>
                <td>DeletePolicy</td>
                <td>DELETE</td>
                <td>/v1/{name=environments/*/policies/*}</td>
                <td></td>
              </tr>
              
              <tr>
                <td>DeletePolicy</td>
                <td>DELETE</td>
                <td>/v1/{name=instances/*/policies/*}</td>
                <td></td>
              </tr>
              
              <tr>
                <td>DeletePolicy</td>
                <td>DELETE</td>
                <td>/v1/{name=instances/*/databases/*/policies/*}</td>
                <td></td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    
      
      <div class="file-heading">
        <h2 id="v1/plan_service.proto">v1/plan_service.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.BatchCancelPlanCheckRunsRequest">BatchCancelPlanCheckRunsRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the parent of the planChecks.
Format: projects/{project}/plans/{plan} </p></td>
                </tr>
              
                <tr>
                  <td>plan_check_runs</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>TODO(d): update this API.
The planCheckRuns to cancel.
Format: projects/{project}/plans/{plan}/planCheckRuns/{planCheckRun} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.BatchCancelPlanCheckRunsResponse">BatchCancelPlanCheckRunsResponse</h3>
        <p></p>

        

        
      
        <h3 id="bytebase.v1.CreatePlanRequest">CreatePlanRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The parent project where this plan will be created.
Format: projects/{project} </p></td>
                </tr>
              
                <tr>
                  <td>plan</td>
                  <td><a href="#bytebase.v1.Plan">Plan</a></td>
                  <td></td>
                  <td><p>The plan to create. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GetPlanRequest">GetPlanRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the plan to retrieve.
Format: projects/{project}/plans/{plan} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListPlanCheckRunsRequest">ListPlanCheckRunsRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The parent, which owns this collection of plan check runs.
Format: projects/{project}/plans/{plan} </p></td>
                </tr>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of plan check runs to return. The service may return fewer than
this value.
If unspecified, at most 50 plans will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A page token, received from a previous `ListPlanCheckRuns` call.
Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to `ListPlanCheckRuns` must match
the call that provided the page token. </p></td>
                </tr>
              
                <tr>
                  <td>latest_only</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>If set to true, only the latest plan check run will be returned. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListPlanCheckRunsResponse">ListPlanCheckRunsResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>plan_check_runs</td>
                  <td><a href="#bytebase.v1.PlanCheckRun">PlanCheckRun</a></td>
                  <td>repeated</td>
                  <td><p>The plan check runs from the specified request. </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListPlansRequest">ListPlansRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The parent, which owns this collection of plans.
Format: projects/{project}
Use &#34;projects/-&#34; to list all plans from all projects. </p></td>
                </tr>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of plans to return. The service may return fewer than
this value.
If unspecified, at most 50 plans will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A page token, received from a previous `ListPlans` call.
Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to `ListPlans` must match
the call that provided the page token. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListPlansResponse">ListPlansResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>plans</td>
                  <td><a href="#bytebase.v1.Plan">Plan</a></td>
                  <td>repeated</td>
                  <td><p>The plans from the specified request. </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Plan">Plan</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the plan.
`plan` is a system generated ID.
Format: projects/{project}/plans/{plan} </p></td>
                </tr>
              
                <tr>
                  <td>issue</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The resource name of the issue associated with this plan.
Format: projects/{project}/issues/{issue} </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>description</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>steps</td>
                  <td><a href="#bytebase.v1.Plan.Step">Plan.Step</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>vcs_source</td>
                  <td><a href="#bytebase.v1.Plan.VCSSource">Plan.VCSSource</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>creator</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: users/hello@world.com </p></td>
                </tr>
              
                <tr>
                  <td>create_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>update_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>plan_check_run_status_count</td>
                  <td><a href="#bytebase.v1.Plan.PlanCheckRunStatusCountEntry">Plan.PlanCheckRunStatusCountEntry</a></td>
                  <td>repeated</td>
                  <td><p>The status count of the latest plan check runs.
Keys are:
- SUCCESS
- WARNING
- ERROR </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Plan.ChangeDatabaseConfig">Plan.ChangeDatabaseConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>target</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The resource name of the target.
Format: instances/{instance-id}/databases/{database-name}.
Format: projects/{project}/databaseGroups/{databaseGroup}. </p></td>
                </tr>
              
                <tr>
                  <td>sheet</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The resource name of the sheet.
Format: projects/{project}/sheets/{sheet} </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.v1.Plan.ChangeDatabaseConfig.Type">Plan.ChangeDatabaseConfig.Type</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>schema_version</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>schema_version is parsed from VCS file name.
It is automatically generated in the UI workflow. </p></td>
                </tr>
              
                <tr>
                  <td>ghost_flags</td>
                  <td><a href="#bytebase.v1.Plan.ChangeDatabaseConfig.GhostFlagsEntry">Plan.ChangeDatabaseConfig.GhostFlagsEntry</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>pre_update_backup_detail</td>
                  <td><a href="#bytebase.v1.Plan.ChangeDatabaseConfig.PreUpdateBackupDetail">Plan.ChangeDatabaseConfig.PreUpdateBackupDetail</a></td>
                  <td>optional</td>
                  <td><p>If set, a backup of the modified data will be created automatically before any changes are applied. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Plan.ChangeDatabaseConfig.GhostFlagsEntry">Plan.ChangeDatabaseConfig.GhostFlagsEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Plan.ChangeDatabaseConfig.PreUpdateBackupDetail">Plan.ChangeDatabaseConfig.PreUpdateBackupDetail</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>database</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The database for keeping the backup data.
Format: instances/{instance}/databases/{database} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Plan.CreateDatabaseConfig">Plan.CreateDatabaseConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>target</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The resource name of the instance on which the database is created.
Format: instances/{instance} </p></td>
                </tr>
              
                <tr>
                  <td>database</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the database to create. </p></td>
                </tr>
              
                <tr>
                  <td>table</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>table is the name of the table, if it is not empty, Bytebase should create a table after creating the database.
For example, in MongoDB, it only creates the database when we first store data in that database. </p></td>
                </tr>
              
                <tr>
                  <td>character_set</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>character_set is the character set of the database. </p></td>
                </tr>
              
                <tr>
                  <td>collation</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>collation is the collation of the database. </p></td>
                </tr>
              
                <tr>
                  <td>cluster</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>cluster is the cluster of the database. This is only applicable to ClickHouse for &#34;ON CLUSTER &lt;&lt;cluster&gt;&gt;&#34;. </p></td>
                </tr>
              
                <tr>
                  <td>owner</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>owner is the owner of the database. This is only applicable to Postgres for &#34;WITH OWNER &lt;&lt;owner&gt;&gt;&#34;. </p></td>
                </tr>
              
                <tr>
                  <td>environment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The environment resource.
Format: environments/prod where prod is the environment resource ID. </p></td>
                </tr>
              
                <tr>
                  <td>labels</td>
                  <td><a href="#bytebase.v1.Plan.CreateDatabaseConfig.LabelsEntry">Plan.CreateDatabaseConfig.LabelsEntry</a></td>
                  <td>repeated</td>
                  <td><p>labels of the database. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Plan.CreateDatabaseConfig.LabelsEntry">Plan.CreateDatabaseConfig.LabelsEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Plan.ExportDataConfig">Plan.ExportDataConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>target</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The resource name of the target.
Format: instances/{instance-id}/databases/{database-name} </p></td>
                </tr>
              
                <tr>
                  <td>sheet</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The resource name of the sheet.
Format: projects/{project}/sheets/{sheet} </p></td>
                </tr>
              
                <tr>
                  <td>format</td>
                  <td><a href="#bytebase.v1.ExportFormat">ExportFormat</a></td>
                  <td></td>
                  <td><p>The format of the exported file. </p></td>
                </tr>
              
                <tr>
                  <td>password</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p>The zip password provide by users.
Leave it empty if no needs to encrypt the zip file. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Plan.PlanCheckRunStatusCountEntry">Plan.PlanCheckRunStatusCountEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Plan.Spec">Plan.Spec</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>earliest_allowed_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>earliest_allowed_time the earliest execution time of the change. </p></td>
                </tr>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A UUID4 string that uniquely identifies the Spec. </p></td>
                </tr>
              
                <tr>
                  <td>depends_on_specs</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>IDs of the specs that this spec depends on.
Must be a subset of the specs in the same step. </p></td>
                </tr>
              
                <tr>
                  <td>create_database_config</td>
                  <td><a href="#bytebase.v1.Plan.CreateDatabaseConfig">Plan.CreateDatabaseConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>change_database_config</td>
                  <td><a href="#bytebase.v1.Plan.ChangeDatabaseConfig">Plan.ChangeDatabaseConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>export_data_config</td>
                  <td><a href="#bytebase.v1.Plan.ExportDataConfig">Plan.ExportDataConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Plan.Step">Plan.Step</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>specs</td>
                  <td><a href="#bytebase.v1.Plan.Spec">Plan.Spec</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Plan.VCSSource">Plan.VCSSource</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>vcs_type</td>
                  <td><a href="#bytebase.v1.VCSType">VCSType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>vcs_connector</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Optional.
If present, we will update the pull request for rollout status.
Format: projects/{project-ID}/vcsConnectors/{vcs-connector} </p></td>
                </tr>
              
                <tr>
                  <td>pull_request_url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.PlanCheckRun">PlanCheckRun</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: projects/{project}/plans/{plan}/planCheckRuns/{planCheckRun} </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.v1.PlanCheckRun.Type">PlanCheckRun.Type</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>status</td>
                  <td><a href="#bytebase.v1.PlanCheckRun.Status">PlanCheckRun.Status</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>target</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: instances/{instance}/databases/{database} </p></td>
                </tr>
              
                <tr>
                  <td>sheet</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: project/{project}/sheets/{sheet} </p></td>
                </tr>
              
                <tr>
                  <td>results</td>
                  <td><a href="#bytebase.v1.PlanCheckRun.Result">PlanCheckRun.Result</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>error</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>error is set if the Status is FAILED. </p></td>
                </tr>
              
                <tr>
                  <td>create_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.PlanCheckRun.Result">PlanCheckRun.Result</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>status</td>
                  <td><a href="#bytebase.v1.PlanCheckRun.Result.Status">PlanCheckRun.Result.Status</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>content</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>code</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>sql_summary_report</td>
                  <td><a href="#bytebase.v1.PlanCheckRun.Result.SqlSummaryReport">PlanCheckRun.Result.SqlSummaryReport</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>sql_review_report</td>
                  <td><a href="#bytebase.v1.PlanCheckRun.Result.SqlReviewReport">PlanCheckRun.Result.SqlReviewReport</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.PlanCheckRun.Result.SqlReviewReport">PlanCheckRun.Result.SqlReviewReport</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>line</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>column</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>detail</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>code</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>Code from sql review. </p></td>
                </tr>
              
                <tr>
                  <td>start_position</td>
                  <td><a href="#bytebase.v1.Position">Position</a></td>
                  <td></td>
                  <td><p>1-based Position of the SQL statement.
To supersede `line` and `column` above. </p></td>
                </tr>
              
                <tr>
                  <td>end_position</td>
                  <td><a href="#bytebase.v1.Position">Position</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.PlanCheckRun.Result.SqlSummaryReport">PlanCheckRun.Result.SqlSummaryReport</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>code</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>statement_types</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>statement_types are the types of statements that are found in the sql. </p></td>
                </tr>
              
                <tr>
                  <td>affected_rows</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>changed_resources</td>
                  <td><a href="#bytebase.v1.ChangedResources">ChangedResources</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.RunPlanChecksRequest">RunPlanChecksRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The plan to run plan checks.
Format: projects/{project}/plans/{plan} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.RunPlanChecksResponse">RunPlanChecksResponse</h3>
        <p></p>

        

        
      
        <h3 id="bytebase.v1.SearchPlansRequest">SearchPlansRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The parent, which owns this collection of plans.
Format: projects/{project}
Use &#34;projects/-&#34; to list all plans from all projects. </p></td>
                </tr>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of plans to return. The service may return fewer than
this value.
If unspecified, at most 50 plans will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A page token, received from a previous `ListPlans` call.
Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to `ListPlans` must match
the call that provided the page token. </p></td>
                </tr>
              
                <tr>
                  <td>filter</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Filter is used to filter plans returned in the list. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SearchPlansResponse">SearchPlansResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>plans</td>
                  <td><a href="#bytebase.v1.Plan">Plan</a></td>
                  <td>repeated</td>
                  <td><p>The plans from the specified request. </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdatePlanRequest">UpdatePlanRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>plan</td>
                  <td><a href="#bytebase.v1.Plan">Plan</a></td>
                  <td></td>
                  <td><p>The plan to update.

The plan&#39;s `name` field is used to identify the plan to update.
Format: projects/{project}/plans/{plan} </p></td>
                </tr>
              
                <tr>
                  <td>update_mask</td>
                  <td><a href="#google.protobuf.FieldMask">google.protobuf.FieldMask</a></td>
                  <td></td>
                  <td><p>The list of fields to update. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.v1.Plan.ChangeDatabaseConfig.Type">Plan.ChangeDatabaseConfig.Type</h3>
        <p>Type is the database change type.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>BASELINE</td>
                <td>1</td>
                <td><p>Used for establishing schema baseline, this is used when
1. Onboard the database into Bytebase since Bytebase needs to know the current database schema.
2. Had schema drift and need to re-establish the baseline.</p></td>
              </tr>
            
              <tr>
                <td>MIGRATE</td>
                <td>2</td>
                <td><p>Used for DDL changes including CREATE DATABASE.</p></td>
              </tr>
            
              <tr>
                <td>MIGRATE_SDL</td>
                <td>3</td>
                <td><p>Used for schema changes via state-based schema migration including CREATE DATABASE.</p></td>
              </tr>
            
              <tr>
                <td>MIGRATE_GHOST</td>
                <td>4</td>
                <td><p>Used for DDL changes using gh-ost.</p></td>
              </tr>
            
              <tr>
                <td>DATA</td>
                <td>6</td>
                <td><p>Used for DML change.</p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.PlanCheckRun.Result.Status">PlanCheckRun.Result.Status</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>STATUS_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ERROR</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>WARNING</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SUCCESS</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.PlanCheckRun.Status">PlanCheckRun.Status</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>STATUS_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>RUNNING</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DONE</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>FAILED</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CANCELED</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.PlanCheckRun.Type">PlanCheckRun.Type</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DATABASE_STATEMENT_FAKE_ADVISE</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DATABASE_STATEMENT_ADVISE</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DATABASE_STATEMENT_SUMMARY_REPORT</td>
                <td>5</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DATABASE_CONNECT</td>
                <td>6</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DATABASE_GHOST_SYNC</td>
                <td>7</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
        <h3 id="bytebase.v1.PlanService">PlanService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>GetPlan</td>
                <td><a href="#bytebase.v1.GetPlanRequest">GetPlanRequest</a></td>
                <td><a href="#bytebase.v1.Plan">Plan</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ListPlans</td>
                <td><a href="#bytebase.v1.ListPlansRequest">ListPlansRequest</a></td>
                <td><a href="#bytebase.v1.ListPlansResponse">ListPlansResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SearchPlans</td>
                <td><a href="#bytebase.v1.SearchPlansRequest">SearchPlansRequest</a></td>
                <td><a href="#bytebase.v1.SearchPlansResponse">SearchPlansResponse</a></td>
                <td><p>Search for plans that the caller has the bb.plans.get permission on and also satisfy the specified filter &amp; query.</p></td>
              </tr>
            
              <tr>
                <td>CreatePlan</td>
                <td><a href="#bytebase.v1.CreatePlanRequest">CreatePlanRequest</a></td>
                <td><a href="#bytebase.v1.Plan">Plan</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UpdatePlan</td>
                <td><a href="#bytebase.v1.UpdatePlanRequest">UpdatePlanRequest</a></td>
                <td><a href="#bytebase.v1.Plan">Plan</a></td>
                <td><p>UpdatePlan updates the plan.
The plan creator and the user with bb.plans.update permission on the project can update the plan.</p></td>
              </tr>
            
              <tr>
                <td>ListPlanCheckRuns</td>
                <td><a href="#bytebase.v1.ListPlanCheckRunsRequest">ListPlanCheckRunsRequest</a></td>
                <td><a href="#bytebase.v1.ListPlanCheckRunsResponse">ListPlanCheckRunsResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>RunPlanChecks</td>
                <td><a href="#bytebase.v1.RunPlanChecksRequest">RunPlanChecksRequest</a></td>
                <td><a href="#bytebase.v1.RunPlanChecksResponse">RunPlanChecksResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>BatchCancelPlanCheckRuns</td>
                <td><a href="#bytebase.v1.BatchCancelPlanCheckRunsRequest">BatchCancelPlanCheckRunsRequest</a></td>
                <td><a href="#bytebase.v1.BatchCancelPlanCheckRunsResponse">BatchCancelPlanCheckRunsResponse</a></td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>GetPlan</td>
                <td>GET</td>
                <td>/v1/{name=projects/*/plans/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>ListPlans</td>
                <td>GET</td>
                <td>/v1/{parent=projects/*}/plans</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>SearchPlans</td>
                <td>POST</td>
                <td>/v1/{parent=projects/*}/plans:search</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>CreatePlan</td>
                <td>POST</td>
                <td>/v1/{parent=projects/*}/plans</td>
                <td>plan</td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdatePlan</td>
                <td>PATCH</td>
                <td>/v1/{plan.name=projects/*/plans/*}</td>
                <td>plan</td>
              </tr>
              
            
              
              
              <tr>
                <td>ListPlanCheckRuns</td>
                <td>GET</td>
                <td>/v1/{parent=projects/*/plans/*}/planCheckRuns</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>RunPlanChecks</td>
                <td>POST</td>
                <td>/v1/{name=projects/*/plans/*}:runPlanChecks</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>BatchCancelPlanCheckRuns</td>
                <td>POST</td>
                <td>/v1/{parent=projects/*/plans/*}/planCheckRuns:batchCancel</td>
                <td>*</td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    
      
      <div class="file-heading">
        <h2 id="v1/project_service.proto">v1/project_service.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.Activity">Activity</h3>
        <p>TODO(zp): move to activity later.</p>

        

        
      
        <h3 id="bytebase.v1.AddWebhookRequest">AddWebhookRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>project</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the project to add the webhook to.
Format: projects/{project} </p></td>
                </tr>
              
                <tr>
                  <td>webhook</td>
                  <td><a href="#bytebase.v1.Webhook">Webhook</a></td>
                  <td></td>
                  <td><p>The webhook to add. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.BatchGetIamPolicyRequest">BatchGetIamPolicyRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>scope</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The scope of the batch get. Typically it&#39;s &#34;projects/-&#34;. </p></td>
                </tr>
              
                <tr>
                  <td>names</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.BatchGetIamPolicyResponse">BatchGetIamPolicyResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>policy_results</td>
                  <td><a href="#bytebase.v1.BatchGetIamPolicyResponse.PolicyResult">BatchGetIamPolicyResponse.PolicyResult</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.BatchGetIamPolicyResponse.PolicyResult">BatchGetIamPolicyResponse.PolicyResult</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>project</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>policy</td>
                  <td><a href="#bytebase.v1.IamPolicy">IamPolicy</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.CreateProjectRequest">CreateProjectRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>project</td>
                  <td><a href="#bytebase.v1.Project">Project</a></td>
                  <td></td>
                  <td><p>The project to create. </p></td>
                </tr>
              
                <tr>
                  <td>project_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The ID to use for the project, which will become the final component of
the project&#39;s resource name.

This value should be 4-63 characters, and valid characters
are /[a-z][0-9]-/. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DeleteProjectRequest">DeleteProjectRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the project to delete.
Format: projects/{project} </p></td>
                </tr>
              
                <tr>
                  <td>force</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>If set to true, any databases and sheets from this project will also be moved to default project, and all open issues will be closed. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DeploymentConfig">DeploymentConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the resource.
Format: projects/{project}/deploymentConfigs/default. </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The title of the deployment config. </p></td>
                </tr>
              
                <tr>
                  <td>schedule</td>
                  <td><a href="#bytebase.v1.Schedule">Schedule</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DeploymentSpec">DeploymentSpec</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>label_selector</td>
                  <td><a href="#bytebase.v1.LabelSelector">LabelSelector</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GetDeploymentConfigRequest">GetDeploymentConfigRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the resource.
Format: projects/{project}/deploymentConfigs/default. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GetProjectRequest">GetProjectRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the project to retrieve.
Format: projects/{project} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Label">Label</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>color</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>group</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.LabelSelector">LabelSelector</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>match_expressions</td>
                  <td><a href="#bytebase.v1.LabelSelectorRequirement">LabelSelectorRequirement</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.LabelSelectorRequirement">LabelSelectorRequirement</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>operator</td>
                  <td><a href="#bytebase.v1.OperatorType">OperatorType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>values</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListProjectsRequest">ListProjectsRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of projects to return. The service may return fewer than
this value.
If unspecified, at most 50 projects will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A page token, received from a previous `ListProjects` call.
Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to `ListProjects` must match
the call that provided the page token. </p></td>
                </tr>
              
                <tr>
                  <td>show_deleted</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Show deleted projects if specified. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListProjectsResponse">ListProjectsResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>projects</td>
                  <td><a href="#bytebase.v1.Project">Project</a></td>
                  <td>repeated</td>
                  <td><p>The projects from the specified request. </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Project">Project</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the project.
Format: projects/{project} </p></td>
                </tr>
              
                <tr>
                  <td>state</td>
                  <td><a href="#bytebase.v1.State">State</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The title or name of a project. It&#39;s not unique within the workspace. </p></td>
                </tr>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The key is a short and upper-case identifier for a project. It&#39;s unique within the workspace. </p></td>
                </tr>
              
                <tr>
                  <td>workflow</td>
                  <td><a href="#bytebase.v1.Workflow">Workflow</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>webhooks</td>
                  <td><a href="#bytebase.v1.Webhook">Webhook</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>data_classification_config_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>issue_labels</td>
                  <td><a href="#bytebase.v1.Label">Label</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>force_issue_labels</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Force issue labels to be used when creating an issue. </p></td>
                </tr>
              
                <tr>
                  <td>allow_modify_statement</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Allow modifying statement after issue is created. </p></td>
                </tr>
              
                <tr>
                  <td>auto_resolve_issue</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Enable auto resolve issue. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.RemoveWebhookRequest">RemoveWebhookRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>webhook</td>
                  <td><a href="#bytebase.v1.Webhook">Webhook</a></td>
                  <td></td>
                  <td><p>The webhook to remove. Identified by its url. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Schedule">Schedule</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>deployments</td>
                  <td><a href="#bytebase.v1.ScheduleDeployment">ScheduleDeployment</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ScheduleDeployment">ScheduleDeployment</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The title of the deployment (stage) in a schedule. </p></td>
                </tr>
              
                <tr>
                  <td>spec</td>
                  <td><a href="#bytebase.v1.DeploymentSpec">DeploymentSpec</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SearchProjectsRequest">SearchProjectsRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>show_deleted</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Show deleted projects if specified. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SearchProjectsResponse">SearchProjectsResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>projects</td>
                  <td><a href="#bytebase.v1.Project">Project</a></td>
                  <td>repeated</td>
                  <td><p>The projects from the specified request. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.TestWebhookRequest">TestWebhookRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>project</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the project which owns the webhook to test.
Format: projects/{project} </p></td>
                </tr>
              
                <tr>
                  <td>webhook</td>
                  <td><a href="#bytebase.v1.Webhook">Webhook</a></td>
                  <td></td>
                  <td><p>The webhook to test. Identified by its url. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.TestWebhookResponse">TestWebhookResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>error</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The result of the test, empty if the test is successful. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UndeleteProjectRequest">UndeleteProjectRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the deleted project.
Format: projects/{project} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdateDeploymentConfigRequest">UpdateDeploymentConfigRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>deployment_config</td>
                  <td><a href="#bytebase.v1.DeploymentConfig">DeploymentConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdateProjectRequest">UpdateProjectRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>project</td>
                  <td><a href="#bytebase.v1.Project">Project</a></td>
                  <td></td>
                  <td><p>The project to update.

The project&#39;s `name` field is used to identify the project to update.
Format: projects/{project} </p></td>
                </tr>
              
                <tr>
                  <td>update_mask</td>
                  <td><a href="#google.protobuf.FieldMask">google.protobuf.FieldMask</a></td>
                  <td></td>
                  <td><p>The list of fields to update. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdateWebhookRequest">UpdateWebhookRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>webhook</td>
                  <td><a href="#bytebase.v1.Webhook">Webhook</a></td>
                  <td></td>
                  <td><p>The webhook to modify. </p></td>
                </tr>
              
                <tr>
                  <td>update_mask</td>
                  <td><a href="#google.protobuf.FieldMask">google.protobuf.FieldMask</a></td>
                  <td></td>
                  <td><p>The list of fields to update. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Webhook">Webhook</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>name is the name of the webhook, generated by the server.
format: projects/{project}/webhooks/{webhook} </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.v1.Webhook.Type">Webhook.Type</a></td>
                  <td></td>
                  <td><p>type is the type of the webhook. </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>title is the title of the webhook. </p></td>
                </tr>
              
                <tr>
                  <td>url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>url is the url of the webhook, should be unique within the project. </p></td>
                </tr>
              
                <tr>
                  <td>direct_message</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>if direct_message is set, the notification is sent directly
to the persons and url will be ignored.
IM integration setting should be set for this function to work. </p></td>
                </tr>
              
                <tr>
                  <td>notification_types</td>
                  <td><a href="#bytebase.v1.Activity.Type">Activity.Type</a></td>
                  <td>repeated</td>
                  <td><p>notification_types is the list of activities types that the webhook is interested in.
Bytebase will only send notifications to the webhook if the activity type is in the list.
It should not be empty, and should be a subset of the following:
- TYPE_ISSUE_CREATED
- TYPE_ISSUE_STATUS_UPDATE
- TYPE_ISSUE_PIPELINE_STAGE_UPDATE
- TYPE_ISSUE_PIPELINE_TASK_STATUS_UPDATE
- TYPE_ISSUE_FIELD_UPDATE
- TYPE_ISSUE_COMMENT_CREATE </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.v1.Activity.Type">Activity.Type</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TYPE_NOTIFY_ISSUE_APPROVED</td>
                <td>23</td>
                <td><p>Notifications via webhooks.

TYPE_NOTIFY_ISSUE_APPROVED represents the issue approved notification.</p></td>
              </tr>
            
              <tr>
                <td>TYPE_NOTIFY_PIPELINE_ROLLOUT</td>
                <td>24</td>
                <td><p>TYPE_NOTIFY_PIPELINE_ROLLOUT represents the pipeline rollout notification.</p></td>
              </tr>
            
              <tr>
                <td>TYPE_ISSUE_CREATE</td>
                <td>1</td>
                <td><p>Issue related activity types.

TYPE_ISSUE_CREATE represents creating an issue.</p></td>
              </tr>
            
              <tr>
                <td>TYPE_ISSUE_COMMENT_CREATE</td>
                <td>2</td>
                <td><p>TYPE_ISSUE_COMMENT_CREATE represents commenting on an issue.</p></td>
              </tr>
            
              <tr>
                <td>TYPE_ISSUE_FIELD_UPDATE</td>
                <td>3</td>
                <td><p>TYPE_ISSUE_FIELD_UPDATE represents updating the issue field, likes title, description, etc.</p></td>
              </tr>
            
              <tr>
                <td>TYPE_ISSUE_STATUS_UPDATE</td>
                <td>4</td>
                <td><p>TYPE_ISSUE_STATUS_UPDATE represents the issue status change, including OPEN, CLOSE, CANCEL fow now.</p></td>
              </tr>
            
              <tr>
                <td>TYPE_ISSUE_APPROVAL_NOTIFY</td>
                <td>21</td>
                <td><p>TYPE_ISSUE_APPROVAL_NOTIFY is the type for notifying issue approval.</p></td>
              </tr>
            
              <tr>
                <td>TYPE_ISSUE_PIPELINE_STAGE_STATUS_UPDATE</td>
                <td>5</td>
                <td><p>TYPE_ISSUE_PIPELINE_STAGE_STATUS_UPDATE represents the pipeline stage status change, including BEGIN, END for now.</p></td>
              </tr>
            
              <tr>
                <td>TYPE_ISSUE_PIPELINE_TASK_STATUS_UPDATE</td>
                <td>6</td>
                <td><p>TYPE_ISSUE_PIPELINE_TASK_STATUS_UPDATE represents the pipeline task status change, including PENDING, PENDING_APPROVAL, RUNNING, SUCCESS, FAILURE, CANCELED for now.</p></td>
              </tr>
            
              <tr>
                <td>TYPE_ISSUE_PIPELINE_TASK_RUN_STATUS_UPDATE</td>
                <td>22</td>
                <td><p>TYPE_ISSUE_PIPELINE_TASK_RUN_STATUS_UPDATE represents the pipeline task run status change, including PENDING, RUNNING, DONE, FAILED, CANCELED.</p></td>
              </tr>
            
              <tr>
                <td>TYPE_ISSUE_PIPELINE_TASK_STATEMENT_UPDATE</td>
                <td>8</td>
                <td><p>TYPE_ISSUE_PIPELINE_TASK_STATEMENT_UPDATE represents the manual update of the task statement.</p></td>
              </tr>
            
              <tr>
                <td>TYPE_ISSUE_PIPELINE_TASK_EARLIEST_ALLOWED_TIME_UPDATE</td>
                <td>9</td>
                <td><p>TYPE_ISSUE_PIPELINE_TASK_EARLIEST_ALLOWED_TIME_UPDATE represents the manual update of the task earliest allowed time.</p></td>
              </tr>
            
              <tr>
                <td>TYPE_MEMBER_CREATE</td>
                <td>10</td>
                <td><p>Member related activity types.

TYPE_MEMBER_CREATE represents creating a members.</p></td>
              </tr>
            
              <tr>
                <td>TYPE_MEMBER_ROLE_UPDATE</td>
                <td>11</td>
                <td><p>TYPE_MEMBER_ROLE_UPDATE represents updating the member role, for example, from ADMIN to MEMBER.</p></td>
              </tr>
            
              <tr>
                <td>TYPE_MEMBER_ACTIVATE</td>
                <td>12</td>
                <td><p>TYPE_MEMBER_ACTIVATE represents activating a deactivated member.</p></td>
              </tr>
            
              <tr>
                <td>TYPE_MEMBER_DEACTIVATE</td>
                <td>13</td>
                <td><p>TYPE_MEMBER_DEACTIVATE represents deactivating an active member.</p></td>
              </tr>
            
              <tr>
                <td>TYPE_PROJECT_REPOSITORY_PUSH</td>
                <td>14</td>
                <td><p>Project related activity types.

TYPE_PROJECT_REPOSITORY_PUSH represents Bytebase receiving a push event from the project repository.</p></td>
              </tr>
            
              <tr>
                <td>TYPE_PROJECT_DATABASE_TRANSFER</td>
                <td>15</td>
                <td><p>TYPE_PROJECT_DATABASE_TRANFER represents transfering the database from one project to another.</p></td>
              </tr>
            
              <tr>
                <td>TYPE_PROJECT_MEMBER_CREATE</td>
                <td>16</td>
                <td><p>TYPE_PROJECT_MEMBER_CREATE represents adding a member to the project.</p></td>
              </tr>
            
              <tr>
                <td>TYPE_PROJECT_MEMBER_DELETE</td>
                <td>17</td>
                <td><p>TYPE_PROJECT_MEMBER_DELETE represents removing a member from the project.</p></td>
              </tr>
            
              <tr>
                <td>TYPE_SQL_EDITOR_QUERY</td>
                <td>19</td>
                <td><p>SQL Editor related activity types.
TYPE_SQL_EDITOR_QUERY represents executing query in SQL Editor.</p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.OperatorType">OperatorType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>OPERATOR_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p>The operator is not specified.</p></td>
              </tr>
            
              <tr>
                <td>OPERATOR_TYPE_IN</td>
                <td>1</td>
                <td><p>The operator is &#34;In&#34;.</p></td>
              </tr>
            
              <tr>
                <td>OPERATOR_TYPE_EXISTS</td>
                <td>2</td>
                <td><p>The operator is &#34;Exists&#34;.</p></td>
              </tr>
            
              <tr>
                <td>OPERATOR_TYPE_NOT_IN</td>
                <td>3</td>
                <td><p>The operator is &#34;Not In&#34;.</p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.Webhook.Type">Webhook.Type</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TYPE_SLACK</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TYPE_DISCORD</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TYPE_TEAMS</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TYPE_DINGTALK</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TYPE_FEISHU</td>
                <td>5</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TYPE_WECOM</td>
                <td>6</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TYPE_CUSTOM</td>
                <td>7</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.Workflow">Workflow</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>WORKFLOW_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UI</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>VCS</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
        <h3 id="bytebase.v1.ProjectService">ProjectService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>GetProject</td>
                <td><a href="#bytebase.v1.GetProjectRequest">GetProjectRequest</a></td>
                <td><a href="#bytebase.v1.Project">Project</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ListProjects</td>
                <td><a href="#bytebase.v1.ListProjectsRequest">ListProjectsRequest</a></td>
                <td><a href="#bytebase.v1.ListProjectsResponse">ListProjectsResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SearchProjects</td>
                <td><a href="#bytebase.v1.SearchProjectsRequest">SearchProjectsRequest</a></td>
                <td><a href="#bytebase.v1.SearchProjectsResponse">SearchProjectsResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CreateProject</td>
                <td><a href="#bytebase.v1.CreateProjectRequest">CreateProjectRequest</a></td>
                <td><a href="#bytebase.v1.Project">Project</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UpdateProject</td>
                <td><a href="#bytebase.v1.UpdateProjectRequest">UpdateProjectRequest</a></td>
                <td><a href="#bytebase.v1.Project">Project</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DeleteProject</td>
                <td><a href="#bytebase.v1.DeleteProjectRequest">DeleteProjectRequest</a></td>
                <td><a href="#google.protobuf.Empty">.google.protobuf.Empty</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UndeleteProject</td>
                <td><a href="#bytebase.v1.UndeleteProjectRequest">UndeleteProjectRequest</a></td>
                <td><a href="#bytebase.v1.Project">Project</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>GetIamPolicy</td>
                <td><a href="#bytebase.v1.GetIamPolicyRequest">GetIamPolicyRequest</a></td>
                <td><a href="#bytebase.v1.IamPolicy">IamPolicy</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>BatchGetIamPolicy</td>
                <td><a href="#bytebase.v1.BatchGetIamPolicyRequest">BatchGetIamPolicyRequest</a></td>
                <td><a href="#bytebase.v1.BatchGetIamPolicyResponse">BatchGetIamPolicyResponse</a></td>
                <td><p>Deprecated.</p></td>
              </tr>
            
              <tr>
                <td>SetIamPolicy</td>
                <td><a href="#bytebase.v1.SetIamPolicyRequest">SetIamPolicyRequest</a></td>
                <td><a href="#bytebase.v1.IamPolicy">IamPolicy</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>GetDeploymentConfig</td>
                <td><a href="#bytebase.v1.GetDeploymentConfigRequest">GetDeploymentConfigRequest</a></td>
                <td><a href="#bytebase.v1.DeploymentConfig">DeploymentConfig</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UpdateDeploymentConfig</td>
                <td><a href="#bytebase.v1.UpdateDeploymentConfigRequest">UpdateDeploymentConfigRequest</a></td>
                <td><a href="#bytebase.v1.DeploymentConfig">DeploymentConfig</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>AddWebhook</td>
                <td><a href="#bytebase.v1.AddWebhookRequest">AddWebhookRequest</a></td>
                <td><a href="#bytebase.v1.Project">Project</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UpdateWebhook</td>
                <td><a href="#bytebase.v1.UpdateWebhookRequest">UpdateWebhookRequest</a></td>
                <td><a href="#bytebase.v1.Project">Project</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>RemoveWebhook</td>
                <td><a href="#bytebase.v1.RemoveWebhookRequest">RemoveWebhookRequest</a></td>
                <td><a href="#bytebase.v1.Project">Project</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TestWebhook</td>
                <td><a href="#bytebase.v1.TestWebhookRequest">TestWebhookRequest</a></td>
                <td><a href="#bytebase.v1.TestWebhookResponse">TestWebhookResponse</a></td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>GetProject</td>
                <td>GET</td>
                <td>/v1/{name=projects/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>ListProjects</td>
                <td>GET</td>
                <td>/v1/projects</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>SearchProjects</td>
                <td>POST</td>
                <td>/v1/projects:search</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>CreateProject</td>
                <td>POST</td>
                <td>/v1/projects</td>
                <td>project</td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdateProject</td>
                <td>PATCH</td>
                <td>/v1/{project.name=projects/*}</td>
                <td>project</td>
              </tr>
              
            
              
              
              <tr>
                <td>DeleteProject</td>
                <td>DELETE</td>
                <td>/v1/{name=projects/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>UndeleteProject</td>
                <td>POST</td>
                <td>/v1/{name=projects/*}:undelete</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>GetIamPolicy</td>
                <td>GET</td>
                <td>/v1/{resource=projects/*}:getIamPolicy</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>BatchGetIamPolicy</td>
                <td>GET</td>
                <td>/v1/{scope=*/*}/iamPolicies:batchGet</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>SetIamPolicy</td>
                <td>POST</td>
                <td>/v1/{resource=projects/*}:setIamPolicy</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>GetDeploymentConfig</td>
                <td>GET</td>
                <td>/v1/{name=projects/*/deploymentConfigs/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdateDeploymentConfig</td>
                <td>PATCH</td>
                <td>/v1/{deployment_config.name=projects/*/deploymentConfigs/*}</td>
                <td>deployment_config</td>
              </tr>
              
            
              
              
              <tr>
                <td>AddWebhook</td>
                <td>POST</td>
                <td>/v1/{project=projects/*}:addWebhook</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdateWebhook</td>
                <td>POST</td>
                <td>/v1/{webhook.name=projects/*/webhooks/*}:updateWebhook</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>RemoveWebhook</td>
                <td>POST</td>
                <td>/v1/{webhook.name=projects/*/webhooks/*}:removeWebhook</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>TestWebhook</td>
                <td>POST</td>
                <td>/v1/{project=projects/*}:testWebhook</td>
                <td>*</td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    
      
      <div class="file-heading">
        <h2 id="v1/review_config_service.proto">v1/review_config_service.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.CreateReviewConfigRequest">CreateReviewConfigRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>review_config</td>
                  <td><a href="#bytebase.v1.ReviewConfig">ReviewConfig</a></td>
                  <td></td>
                  <td><p>The sql review to create. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DeleteReviewConfigRequest">DeleteReviewConfigRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the sql review to delete.
Format: reviewConfigs/{reviewConfig} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GetReviewConfigRequest">GetReviewConfigRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the sql review to retrieve.
Format: reviewConfigs/{reviewConfig} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListReviewConfigsRequest">ListReviewConfigsRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of sql review to return. The service may return fewer than
this value.
If unspecified, at most 50 sql review will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A page token, provide this to retrieve the subsequent page.

When paginating, all other parameters provided to `ListSQLReviews` must match
the call that provided the page token. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListReviewConfigsResponse">ListReviewConfigsResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>review_configs</td>
                  <td><a href="#bytebase.v1.ReviewConfig">ReviewConfig</a></td>
                  <td>repeated</td>
                  <td><p>The sql review from the specified request. </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ReviewConfig">ReviewConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the sql review to retrieve.
Format: reviewConfigs/{reviewConfig} </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>enabled</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>creator</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: users/hello@world.com </p></td>
                </tr>
              
                <tr>
                  <td>create_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>update_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>rules</td>
                  <td><a href="#bytebase.v1.SQLReviewRule">SQLReviewRule</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>resources</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>resources using the config.
Format: {resurce}/{resource id}, for example, environments/test. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdateReviewConfigRequest">UpdateReviewConfigRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>review_config</td>
                  <td><a href="#bytebase.v1.ReviewConfig">ReviewConfig</a></td>
                  <td></td>
                  <td><p>The sql review to update.

The name field is used to identify the sql review to update. </p></td>
                </tr>
              
                <tr>
                  <td>update_mask</td>
                  <td><a href="#google.protobuf.FieldMask">google.protobuf.FieldMask</a></td>
                  <td></td>
                  <td><p>The list of fields to update. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
        <h3 id="bytebase.v1.ReviewConfigService">ReviewConfigService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>CreateReviewConfig</td>
                <td><a href="#bytebase.v1.CreateReviewConfigRequest">CreateReviewConfigRequest</a></td>
                <td><a href="#bytebase.v1.ReviewConfig">ReviewConfig</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ListReviewConfigs</td>
                <td><a href="#bytebase.v1.ListReviewConfigsRequest">ListReviewConfigsRequest</a></td>
                <td><a href="#bytebase.v1.ListReviewConfigsResponse">ListReviewConfigsResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>GetReviewConfig</td>
                <td><a href="#bytebase.v1.GetReviewConfigRequest">GetReviewConfigRequest</a></td>
                <td><a href="#bytebase.v1.ReviewConfig">ReviewConfig</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UpdateReviewConfig</td>
                <td><a href="#bytebase.v1.UpdateReviewConfigRequest">UpdateReviewConfigRequest</a></td>
                <td><a href="#bytebase.v1.ReviewConfig">ReviewConfig</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DeleteReviewConfig</td>
                <td><a href="#bytebase.v1.DeleteReviewConfigRequest">DeleteReviewConfigRequest</a></td>
                <td><a href="#google.protobuf.Empty">.google.protobuf.Empty</a></td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>CreateReviewConfig</td>
                <td>POST</td>
                <td>/v1/reviewConfigs</td>
                <td>review_config</td>
              </tr>
              
            
              
              
              <tr>
                <td>ListReviewConfigs</td>
                <td>GET</td>
                <td>/v1/reviewConfigs</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>GetReviewConfig</td>
                <td>GET</td>
                <td>/v1/{name=reviewConfigs/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdateReviewConfig</td>
                <td>PATCH</td>
                <td>/v1/{review_config.name=reviewConfigs/*}</td>
                <td>review_config</td>
              </tr>
              
            
              
              
              <tr>
                <td>DeleteReviewConfig</td>
                <td>DELETE</td>
                <td>/v1/{name=reviewConfigs/*}</td>
                <td></td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    
      
      <div class="file-heading">
        <h2 id="v1/risk_service.proto">v1/risk_service.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.CreateRiskRequest">CreateRiskRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>risk</td>
                  <td><a href="#bytebase.v1.Risk">Risk</a></td>
                  <td></td>
                  <td><p>The risk to create. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DeleteRiskRequest">DeleteRiskRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the risk to delete.
Format: risks/{risk} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListRisksRequest">ListRisksRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of risks to return. The service may return fewer than
this value.
If unspecified, at most 50 risks will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A page token, received from a previous `ListRisks` call.
Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to `LiskRisks` must match
the call that provided the page token. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListRisksResponse">ListRisksResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>risks</td>
                  <td><a href="#bytebase.v1.Risk">Risk</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Risk">Risk</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: risks/{risk} </p></td>
                </tr>
              
                <tr>
                  <td>source</td>
                  <td><a href="#bytebase.v1.Risk.Source">Risk.Source</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>level</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>active</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>condition</td>
                  <td><a href="#google.type.Expr">google.type.Expr</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdateRiskRequest">UpdateRiskRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>risk</td>
                  <td><a href="#bytebase.v1.Risk">Risk</a></td>
                  <td></td>
                  <td><p>The risk to update.

The risk&#39;s `name` field is used to identify the risk to update.
Format: risks/{risk} </p></td>
                </tr>
              
                <tr>
                  <td>update_mask</td>
                  <td><a href="#google.protobuf.FieldMask">google.protobuf.FieldMask</a></td>
                  <td></td>
                  <td><p>The list of fields to update. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.v1.Risk.Source">Risk.Source</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>SOURCE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DDL</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DML</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CREATE_DATABASE</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>REQUEST_QUERY</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>REQUEST_EXPORT</td>
                <td>5</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DATA_EXPORT</td>
                <td>6</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
        <h3 id="bytebase.v1.RiskService">RiskService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>ListRisks</td>
                <td><a href="#bytebase.v1.ListRisksRequest">ListRisksRequest</a></td>
                <td><a href="#bytebase.v1.ListRisksResponse">ListRisksResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CreateRisk</td>
                <td><a href="#bytebase.v1.CreateRiskRequest">CreateRiskRequest</a></td>
                <td><a href="#bytebase.v1.Risk">Risk</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UpdateRisk</td>
                <td><a href="#bytebase.v1.UpdateRiskRequest">UpdateRiskRequest</a></td>
                <td><a href="#bytebase.v1.Risk">Risk</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DeleteRisk</td>
                <td><a href="#bytebase.v1.DeleteRiskRequest">DeleteRiskRequest</a></td>
                <td><a href="#google.protobuf.Empty">.google.protobuf.Empty</a></td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>ListRisks</td>
                <td>GET</td>
                <td>/v1/risks</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>CreateRisk</td>
                <td>POST</td>
                <td>/v1/risks</td>
                <td>risk</td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdateRisk</td>
                <td>PATCH</td>
                <td>/v1/{risk.name=risks/*}</td>
                <td>risk</td>
              </tr>
              
            
              
              
              <tr>
                <td>DeleteRisk</td>
                <td>DELETE</td>
                <td>/v1/{name=risks/*}</td>
                <td></td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    
      
      <div class="file-heading">
        <h2 id="v1/role_service.proto">v1/role_service.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.CreateRoleRequest">CreateRoleRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>role</td>
                  <td><a href="#bytebase.v1.Role">Role</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>role_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The ID to use for the role, which will become the final component
of the role&#39;s resource name.

This value should be 4-63 characters, and valid characters
are /[a-z][A-Z][0-9]/. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DeleteRoleRequest">DeleteRoleRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: roles/{role} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListRolesRequest">ListRolesRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of roles to return. The service may return fewer than
this value.
If unspecified, at most 50 reviews will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A page token, received from a previous `ListRoles` call.
Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to `ListRoles` must match
the call that provided the page token. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListRolesResponse">ListRolesResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>roles</td>
                  <td><a href="#bytebase.v1.Role">Role</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Role">Role</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: roles/{role} </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>description</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>permissions</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdateRoleRequest">UpdateRoleRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>role</td>
                  <td><a href="#bytebase.v1.Role">Role</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>update_mask</td>
                  <td><a href="#google.protobuf.FieldMask">google.protobuf.FieldMask</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
        <h3 id="bytebase.v1.RoleService">RoleService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>ListRoles</td>
                <td><a href="#bytebase.v1.ListRolesRequest">ListRolesRequest</a></td>
                <td><a href="#bytebase.v1.ListRolesResponse">ListRolesResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CreateRole</td>
                <td><a href="#bytebase.v1.CreateRoleRequest">CreateRoleRequest</a></td>
                <td><a href="#bytebase.v1.Role">Role</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UpdateRole</td>
                <td><a href="#bytebase.v1.UpdateRoleRequest">UpdateRoleRequest</a></td>
                <td><a href="#bytebase.v1.Role">Role</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DeleteRole</td>
                <td><a href="#bytebase.v1.DeleteRoleRequest">DeleteRoleRequest</a></td>
                <td><a href="#google.protobuf.Empty">.google.protobuf.Empty</a></td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>ListRoles</td>
                <td>GET</td>
                <td>/v1/roles</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>CreateRole</td>
                <td>POST</td>
                <td>/v1/roles</td>
                <td>role</td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdateRole</td>
                <td>PATCH</td>
                <td>/v1/{role.name=roles/*}</td>
                <td>role</td>
              </tr>
              
            
              
              
              <tr>
                <td>DeleteRole</td>
                <td>DELETE</td>
                <td>/v1/{name=roles/*}</td>
                <td></td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    
      
      <div class="file-heading">
        <h2 id="v1/rollout_service.proto">v1/rollout_service.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.BatchCancelTaskRunsRequest">BatchCancelTaskRunsRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the parent of the taskRuns.
Format: projects/{project}/rollouts/{rollout}/stages/{stage}/tasks/{task}
Use `projects/{project}/rollouts/{rollout}/stages/{stage}/tasks/-` to cancel task runs under the same stage. </p></td>
                </tr>
              
                <tr>
                  <td>task_runs</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The taskRuns to cancel.
Format: projects/{project}/rollouts/{rollout}/stages/{stage}/tasks/{task}/taskRuns/{taskRun} </p></td>
                </tr>
              
                <tr>
                  <td>reason</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.BatchCancelTaskRunsResponse">BatchCancelTaskRunsResponse</h3>
        <p></p>

        

        
      
        <h3 id="bytebase.v1.BatchRunTasksRequest">BatchRunTasksRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the parent of the tasks.
Format: projects/{project}/rollouts/{rollout}/stages/{stage} </p></td>
                </tr>
              
                <tr>
                  <td>tasks</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The tasks to run.
Format: projects/{project}/rollouts/{rollout}/stages/{stage}/tasks/{task} </p></td>
                </tr>
              
                <tr>
                  <td>reason</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.BatchRunTasksResponse">BatchRunTasksResponse</h3>
        <p></p>

        

        
      
        <h3 id="bytebase.v1.BatchSkipTasksRequest">BatchSkipTasksRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the parent of the tasks.
Format: projects/{project}/rollouts/{rollout}/stages/{stage} </p></td>
                </tr>
              
                <tr>
                  <td>tasks</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The tasks to skip.
Format: projects/{project}/rollouts/{rollout}/stages/{stage}/tasks/{task} </p></td>
                </tr>
              
                <tr>
                  <td>reason</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.BatchSkipTasksResponse">BatchSkipTasksResponse</h3>
        <p></p>

        

        
      
        <h3 id="bytebase.v1.CreateRolloutRequest">CreateRolloutRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The parent project where this rollout will be created.
Format: projects/{project} </p></td>
                </tr>
              
                <tr>
                  <td>rollout</td>
                  <td><a href="#bytebase.v1.Rollout">Rollout</a></td>
                  <td></td>
                  <td><p>The rollout to create. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GetRolloutRequest">GetRolloutRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the rollout to retrieve.
Format: projects/{project}/rollouts/{rollout} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GetTaskRunLogRequest">GetTaskRunLogRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: projects/{project}/rollouts/{rollout}/stages/{stage}/tasks/{task}/taskRuns/{taskRun}
TODO(d): check the resource_reference. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GetTaskRunSessionRequest">GetTaskRunSessionRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: projects/{project}/rollouts/{rollout}/stages/{stage}/tasks/{task}/taskRuns/{taskRun} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListTaskRunsRequest">ListTaskRunsRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The parent, which owns this collection of plans.
Format: projects/{project}/rollouts/{rollout}/stages/{stage}/tasks/{task}
Use &#34;projects/{project}/rollouts/{rollout}/stages/-/tasks/-&#34; to list all taskRuns from a rollout. </p></td>
                </tr>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of taskRuns to return. The service may return fewer than
this value.
If unspecified, at most 50 taskRuns will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A page token, received from a previous `ListRolloutTaskRuns` call.
Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to `ListRolloutTaskRuns` must match
the call that provided the page token. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListTaskRunsResponse">ListTaskRunsResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>task_runs</td>
                  <td><a href="#bytebase.v1.TaskRun">TaskRun</a></td>
                  <td>repeated</td>
                  <td><p>The taskRuns from the specified request. </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.PreviewRolloutRequest">PreviewRolloutRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>project</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the project.
Format: projects/{project} </p></td>
                </tr>
              
                <tr>
                  <td>plan</td>
                  <td><a href="#bytebase.v1.Plan">Plan</a></td>
                  <td></td>
                  <td><p>The plan used to preview rollout. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Rollout">Rollout</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The resource name of the rollout.
Format: projects/{project}/rollouts/{rollout} </p></td>
                </tr>
              
                <tr>
                  <td>plan</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The plan that this rollout is based on.
Format: projects/{project}/plans/{plan} </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>stages</td>
                  <td><a href="#bytebase.v1.Stage">Stage</a></td>
                  <td>repeated</td>
                  <td><p>stages and thus tasks of the rollout. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Stage">Stage</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: projects/{project}/rollouts/{rollout}/stages/{stage} </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>tasks</td>
                  <td><a href="#bytebase.v1.Task">Task</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Task">Task</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: projects/{project}/rollouts/{rollout}/stages/{stage}/tasks/{task} </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>spec_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A UUID4 string that uniquely identifies the Spec.
Could be empty if the rollout of the task does not have an associating plan. </p></td>
                </tr>
              
                <tr>
                  <td>status</td>
                  <td><a href="#bytebase.v1.Task.Status">Task.Status</a></td>
                  <td></td>
                  <td><p>Status is the status of the task. </p></td>
                </tr>
              
                <tr>
                  <td>skipped_reason</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.v1.Task.Type">Task.Type</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>depends_on_tasks</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>Format: projects/{project}/rollouts/{rollout}/stages/{stage}/tasks/{task} </p></td>
                </tr>
              
                <tr>
                  <td>target</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: instances/{instance} if the task is DatabaseCreate.
Format: instances/{instance}/databases/{database} </p></td>
                </tr>
              
                <tr>
                  <td>database_create</td>
                  <td><a href="#bytebase.v1.Task.DatabaseCreate">Task.DatabaseCreate</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>database_schema_baseline</td>
                  <td><a href="#bytebase.v1.Task.DatabaseSchemaBaseline">Task.DatabaseSchemaBaseline</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>database_schema_update</td>
                  <td><a href="#bytebase.v1.Task.DatabaseSchemaUpdate">Task.DatabaseSchemaUpdate</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>database_data_update</td>
                  <td><a href="#bytebase.v1.Task.DatabaseDataUpdate">Task.DatabaseDataUpdate</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>database_data_export</td>
                  <td><a href="#bytebase.v1.Task.DatabaseDataExport">Task.DatabaseDataExport</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Task.DatabaseCreate">Task.DatabaseCreate</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>project</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The project owning the database.
Format: projects/{project} </p></td>
                </tr>
              
                <tr>
                  <td>database</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>database name </p></td>
                </tr>
              
                <tr>
                  <td>table</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>table name </p></td>
                </tr>
              
                <tr>
                  <td>sheet</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: projects/{project}/sheets/{sheet} </p></td>
                </tr>
              
                <tr>
                  <td>character_set</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>collation</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>environment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>labels</td>
                  <td><a href="#bytebase.v1.Task.DatabaseCreate.LabelsEntry">Task.DatabaseCreate.LabelsEntry</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Task.DatabaseCreate.LabelsEntry">Task.DatabaseCreate.LabelsEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Task.DatabaseDataExport">Task.DatabaseDataExport</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>target</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The resource name of the target.
Format: instances/{instance-id}/databases/{database-name} </p></td>
                </tr>
              
                <tr>
                  <td>sheet</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The resource name of the sheet.
Format: projects/{project}/sheets/{sheet} </p></td>
                </tr>
              
                <tr>
                  <td>format</td>
                  <td><a href="#bytebase.v1.ExportFormat">ExportFormat</a></td>
                  <td></td>
                  <td><p>The format of the exported file. </p></td>
                </tr>
              
                <tr>
                  <td>password</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p>The zip password provide by users.
Leave it empty if no needs to encrypt the zip file. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Task.DatabaseDataUpdate">Task.DatabaseDataUpdate</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>sheet</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: projects/{project}/sheets/{sheet} </p></td>
                </tr>
              
                <tr>
                  <td>schema_version</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Task.DatabaseSchemaBaseline">Task.DatabaseSchemaBaseline</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>schema_version</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Task.DatabaseSchemaUpdate">Task.DatabaseSchemaUpdate</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>sheet</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: projects/{project}/sheets/{sheet} </p></td>
                </tr>
              
                <tr>
                  <td>schema_version</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.TaskRun">TaskRun</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: projects/{project}/rollouts/{rollout}/stages/{stage}/tasks/{task}/taskRuns/{taskRun} </p></td>
                </tr>
              
                <tr>
                  <td>creator</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: user/hello@world.com </p></td>
                </tr>
              
                <tr>
                  <td>updater</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: user/hello@world.com </p></td>
                </tr>
              
                <tr>
                  <td>create_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>update_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>status</td>
                  <td><a href="#bytebase.v1.TaskRun.Status">TaskRun.Status</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>detail</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Below are the results of a task run. </p></td>
                </tr>
              
                <tr>
                  <td>change_history</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The resource name of the change history
Format: instances/{instance}/databases/{database}/changeHistories/{changeHistory} </p></td>
                </tr>
              
                <tr>
                  <td>schema_version</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>start_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>export_archive_status</td>
                  <td><a href="#bytebase.v1.TaskRun.ExportArchiveStatus">TaskRun.ExportArchiveStatus</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>prior_backup_detail</td>
                  <td><a href="#bytebase.v1.TaskRun.PriorBackupDetail">TaskRun.PriorBackupDetail</a></td>
                  <td></td>
                  <td><p>The prior backup detail that will be used to rollback the task run. </p></td>
                </tr>
              
                <tr>
                  <td>scheduler_info</td>
                  <td><a href="#bytebase.v1.TaskRun.SchedulerInfo">TaskRun.SchedulerInfo</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.TaskRun.PriorBackupDetail">TaskRun.PriorBackupDetail</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>items</td>
                  <td><a href="#bytebase.v1.TaskRun.PriorBackupDetail.Item">TaskRun.PriorBackupDetail.Item</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.TaskRun.PriorBackupDetail.Item">TaskRun.PriorBackupDetail.Item</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>source_table</td>
                  <td><a href="#bytebase.v1.TaskRun.PriorBackupDetail.Item.Table">TaskRun.PriorBackupDetail.Item.Table</a></td>
                  <td></td>
                  <td><p>The original table information. </p></td>
                </tr>
              
                <tr>
                  <td>target_table</td>
                  <td><a href="#bytebase.v1.TaskRun.PriorBackupDetail.Item.Table">TaskRun.PriorBackupDetail.Item.Table</a></td>
                  <td></td>
                  <td><p>The target backup table information. </p></td>
                </tr>
              
                <tr>
                  <td>start_position</td>
                  <td><a href="#bytebase.v1.Position">Position</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>end_position</td>
                  <td><a href="#bytebase.v1.Position">Position</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.TaskRun.PriorBackupDetail.Item.Table">TaskRun.PriorBackupDetail.Item.Table</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>database</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The database information.
Format: instances/{instance}/databases/{database} </p></td>
                </tr>
              
                <tr>
                  <td>schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>table</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.TaskRun.SchedulerInfo">TaskRun.SchedulerInfo</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>report_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>waiting_cause</td>
                  <td><a href="#bytebase.v1.TaskRun.SchedulerInfo.WaitingCause">TaskRun.SchedulerInfo.WaitingCause</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.TaskRun.SchedulerInfo.WaitingCause">TaskRun.SchedulerInfo.WaitingCause</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>connection_limit</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>task</td>
                  <td><a href="#bytebase.v1.TaskRun.SchedulerInfo.WaitingCause.Task">TaskRun.SchedulerInfo.WaitingCause.Task</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.TaskRun.SchedulerInfo.WaitingCause.Task">TaskRun.SchedulerInfo.WaitingCause.Task</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>task</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: projects/{project}/rollouts/{rollout}/stages/{stage}/tasks/{task} </p></td>
                </tr>
              
                <tr>
                  <td>issue</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: projects/{project}/issues/{issue} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.TaskRunLog">TaskRunLog</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: projects/{project}/rollouts/{rollout}/stages/{stage}/tasks/{task}/taskRuns/{taskRun}/log </p></td>
                </tr>
              
                <tr>
                  <td>entries</td>
                  <td><a href="#bytebase.v1.TaskRunLogEntry">TaskRunLogEntry</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.TaskRunLogEntry">TaskRunLogEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.v1.TaskRunLogEntry.Type">TaskRunLogEntry.Type</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>log_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>deploy_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>schema_dump</td>
                  <td><a href="#bytebase.v1.TaskRunLogEntry.SchemaDump">TaskRunLogEntry.SchemaDump</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>command_execute</td>
                  <td><a href="#bytebase.v1.TaskRunLogEntry.CommandExecute">TaskRunLogEntry.CommandExecute</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>database_sync</td>
                  <td><a href="#bytebase.v1.TaskRunLogEntry.DatabaseSync">TaskRunLogEntry.DatabaseSync</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>task_run_status_update</td>
                  <td><a href="#bytebase.v1.TaskRunLogEntry.TaskRunStatusUpdate">TaskRunLogEntry.TaskRunStatusUpdate</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>transaction_control</td>
                  <td><a href="#bytebase.v1.TaskRunLogEntry.TransactionControl">TaskRunLogEntry.TransactionControl</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.TaskRunLogEntry.CommandExecute">TaskRunLogEntry.CommandExecute</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>log_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>command_indexes</td>
                  <td><a href="#int32">int32</a></td>
                  <td>repeated</td>
                  <td><p>The indexes of the executed commands. </p></td>
                </tr>
              
                <tr>
                  <td>response</td>
                  <td><a href="#bytebase.v1.TaskRunLogEntry.CommandExecute.CommandResponse">TaskRunLogEntry.CommandExecute.CommandResponse</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.TaskRunLogEntry.CommandExecute.CommandResponse">TaskRunLogEntry.CommandExecute.CommandResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>log_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>error</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>affected_rows</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>all_affected_rows</td>
                  <td><a href="#int32">int32</a></td>
                  <td>repeated</td>
                  <td><p>`all_affected_rows` is the affected rows of each command.
`all_affected_rows` may be unavailable if the database driver doesn&#39;t support it. Caller should fallback to `affected_rows` in that case. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.TaskRunLogEntry.DatabaseSync">TaskRunLogEntry.DatabaseSync</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>start_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>end_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>error</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.TaskRunLogEntry.SchemaDump">TaskRunLogEntry.SchemaDump</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>start_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>end_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>error</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.TaskRunLogEntry.TaskRunStatusUpdate">TaskRunLogEntry.TaskRunStatusUpdate</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>status</td>
                  <td><a href="#bytebase.v1.TaskRunLogEntry.TaskRunStatusUpdate.Status">TaskRunLogEntry.TaskRunStatusUpdate.Status</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.TaskRunLogEntry.TransactionControl">TaskRunLogEntry.TransactionControl</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.v1.TaskRunLogEntry.TransactionControl.Type">TaskRunLogEntry.TransactionControl.Type</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>error</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.TaskRunSession">TaskRunSession</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: projects/{project}/rollouts/{rollout}/stages/{stage}/tasks/{task}/taskRuns/{taskRun}/session </p></td>
                </tr>
              
                <tr>
                  <td>postgres</td>
                  <td><a href="#bytebase.v1.TaskRunSession.Postgres">TaskRunSession.Postgres</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.TaskRunSession.Postgres">TaskRunSession.Postgres</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>session</td>
                  <td><a href="#bytebase.v1.TaskRunSession.Postgres.Session">TaskRunSession.Postgres.Session</a></td>
                  <td></td>
                  <td><p>`session` is the session of the task run executing commands. </p></td>
                </tr>
              
                <tr>
                  <td>blocking_sessions</td>
                  <td><a href="#bytebase.v1.TaskRunSession.Postgres.Session">TaskRunSession.Postgres.Session</a></td>
                  <td>repeated</td>
                  <td><p>`blocking_sessions` block `session`. </p></td>
                </tr>
              
                <tr>
                  <td>blocked_sessions</td>
                  <td><a href="#bytebase.v1.TaskRunSession.Postgres.Session">TaskRunSession.Postgres.Session</a></td>
                  <td>repeated</td>
                  <td><p>`blocked_sessions` are blocked by `session`. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.TaskRunSession.Postgres.Session">TaskRunSession.Postgres.Session</h3>
        <p>Read from `pg_stat_activity`</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>pid</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>blocked_by_pids</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>query</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>state</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>wait_event_type</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>wait_event</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>datname</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>usename</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>application_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>client_addr</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>client_port</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>backend_start</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>xact_start</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>query_start</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.v1.Task.Status">Task.Status</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>STATUS_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>NOT_STARTED</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PENDING</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>RUNNING</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DONE</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>FAILED</td>
                <td>5</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CANCELED</td>
                <td>6</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SKIPPED</td>
                <td>7</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.Task.Type">Task.Type</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>GENERAL</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DATABASE_CREATE</td>
                <td>2</td>
                <td><p>use payload DatabaseCreate</p></td>
              </tr>
            
              <tr>
                <td>DATABASE_SCHEMA_BASELINE</td>
                <td>3</td>
                <td><p>use payload DatabaseSchemaBaseline</p></td>
              </tr>
            
              <tr>
                <td>DATABASE_SCHEMA_UPDATE</td>
                <td>4</td>
                <td><p>use payload DatabaseSchemaUpdate</p></td>
              </tr>
            
              <tr>
                <td>DATABASE_SCHEMA_UPDATE_SDL</td>
                <td>5</td>
                <td><p>use payload DatabaseSchemaUpdate</p></td>
              </tr>
            
              <tr>
                <td>DATABASE_SCHEMA_UPDATE_GHOST_SYNC</td>
                <td>6</td>
                <td><p>use payload DatabaseSchemaUpdate</p></td>
              </tr>
            
              <tr>
                <td>DATABASE_SCHEMA_UPDATE_GHOST_CUTOVER</td>
                <td>7</td>
                <td><p>use payload nil</p></td>
              </tr>
            
              <tr>
                <td>DATABASE_DATA_UPDATE</td>
                <td>8</td>
                <td><p>use payload DatabaseDataUpdate</p></td>
              </tr>
            
              <tr>
                <td>DATABASE_DATA_EXPORT</td>
                <td>12</td>
                <td><p>use payload DatabaseDataExport</p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.TaskRun.ExportArchiveStatus">TaskRun.ExportArchiveStatus</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>EXPORT_ARCHIVE_STATUS_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>READY</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>EXPORTED</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.TaskRun.Status">TaskRun.Status</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>STATUS_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PENDING</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>RUNNING</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DONE</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>FAILED</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CANCELED</td>
                <td>5</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.TaskRunLogEntry.TaskRunStatusUpdate.Status">TaskRunLogEntry.TaskRunStatusUpdate.Status</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>STATUS_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>RUNNING_WAITING</td>
                <td>1</td>
                <td><p>the task run is ready to be executed by the scheduler</p></td>
              </tr>
            
              <tr>
                <td>RUNNING_RUNNING</td>
                <td>2</td>
                <td><p>the task run is being executed by the scheduler</p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.TaskRunLogEntry.TransactionControl.Type">TaskRunLogEntry.TransactionControl.Type</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>BEGIN</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COMMIT</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ROLLBACK</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.TaskRunLogEntry.Type">TaskRunLogEntry.Type</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SCHEMA_DUMP</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COMMAND_EXECUTE</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DATABASE_SYNC</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TASK_RUN_STATUS_UPDATE</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TRANSACTION_CONTROL</td>
                <td>5</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
        <h3 id="bytebase.v1.RolloutService">RolloutService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>GetRollout</td>
                <td><a href="#bytebase.v1.GetRolloutRequest">GetRolloutRequest</a></td>
                <td><a href="#bytebase.v1.Rollout">Rollout</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CreateRollout</td>
                <td><a href="#bytebase.v1.CreateRolloutRequest">CreateRolloutRequest</a></td>
                <td><a href="#bytebase.v1.Rollout">Rollout</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PreviewRollout</td>
                <td><a href="#bytebase.v1.PreviewRolloutRequest">PreviewRolloutRequest</a></td>
                <td><a href="#bytebase.v1.Rollout">Rollout</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ListTaskRuns</td>
                <td><a href="#bytebase.v1.ListTaskRunsRequest">ListTaskRunsRequest</a></td>
                <td><a href="#bytebase.v1.ListTaskRunsResponse">ListTaskRunsResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>GetTaskRunLog</td>
                <td><a href="#bytebase.v1.GetTaskRunLogRequest">GetTaskRunLogRequest</a></td>
                <td><a href="#bytebase.v1.TaskRunLog">TaskRunLog</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>GetTaskRunSession</td>
                <td><a href="#bytebase.v1.GetTaskRunSessionRequest">GetTaskRunSessionRequest</a></td>
                <td><a href="#bytebase.v1.TaskRunSession">TaskRunSession</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>BatchRunTasks</td>
                <td><a href="#bytebase.v1.BatchRunTasksRequest">BatchRunTasksRequest</a></td>
                <td><a href="#bytebase.v1.BatchRunTasksResponse">BatchRunTasksResponse</a></td>
                <td><p>BatchRunTasks creates task runs for the specified tasks.
DataExport issue only allows the creator to run the task.
Users with &#34;bb.taskRuns.create&#34; permission can run the task, e.g. Workspace Admin and DBA.
Follow role-based rollout policy for the environment.</p></td>
              </tr>
            
              <tr>
                <td>BatchSkipTasks</td>
                <td><a href="#bytebase.v1.BatchSkipTasksRequest">BatchSkipTasksRequest</a></td>
                <td><a href="#bytebase.v1.BatchSkipTasksResponse">BatchSkipTasksResponse</a></td>
                <td><p>BatchSkipTasks skips the specified tasks.
The access is the same as BatchRunTasks().</p></td>
              </tr>
            
              <tr>
                <td>BatchCancelTaskRuns</td>
                <td><a href="#bytebase.v1.BatchCancelTaskRunsRequest">BatchCancelTaskRunsRequest</a></td>
                <td><a href="#bytebase.v1.BatchCancelTaskRunsResponse">BatchCancelTaskRunsResponse</a></td>
                <td><p>BatchSkipTasks cancels the specified task runs in batch.
The access is the same as BatchRunTasks().</p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>GetRollout</td>
                <td>GET</td>
                <td>/v1/{name=projects/*/rollouts/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>CreateRollout</td>
                <td>POST</td>
                <td>/v1/{parent=projects/*}/rollouts</td>
                <td>rollout</td>
              </tr>
              
            
              
              
              <tr>
                <td>PreviewRollout</td>
                <td>POST</td>
                <td>/v1/{project=projects/*}:previewRollout</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>ListTaskRuns</td>
                <td>GET</td>
                <td>/v1/{parent=projects/*/rollouts/*/stages/*/tasks/*}/taskRuns</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>GetTaskRunLog</td>
                <td>GET</td>
                <td>/v1/{parent=projects/*/rollouts/*/stages/*/tasks/*/taskRuns/*}/log</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>GetTaskRunSession</td>
                <td>GET</td>
                <td>/v1/{parent=projects/*/rollouts/*/stages/*/tasks/*/taskRuns/*}/session</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>BatchRunTasks</td>
                <td>POST</td>
                <td>/v1/{parent=projects/*/rollouts/*/stages/*}/tasks:batchRun</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>BatchSkipTasks</td>
                <td>POST</td>
                <td>/v1/{parent=projects/*/rollouts/*/stages/*}/tasks:batchSkip</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>BatchCancelTaskRuns</td>
                <td>POST</td>
                <td>/v1/{parent=projects/*/rollouts/*/stages/*/tasks/*}/taskRuns:batchCancel</td>
                <td>*</td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    
      
      <div class="file-heading">
        <h2 id="v1/subscription_service.proto">v1/subscription_service.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.Feature">Feature</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Name is the feature name. </p></td>
                </tr>
              
                <tr>
                  <td>matrix</td>
                  <td><a href="#bytebase.v1.Feature.MatrixEntry">Feature.MatrixEntry</a></td>
                  <td>repeated</td>
                  <td><p>Matrix is the feature matrix for different plan. The key is the plan enum in string value. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Feature.MatrixEntry">Feature.MatrixEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.FeatureMatrix">FeatureMatrix</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>features</td>
                  <td><a href="#bytebase.v1.Feature">Feature</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GetFeatureMatrixRequest">GetFeatureMatrixRequest</h3>
        <p></p>

        

        
      
        <h3 id="bytebase.v1.GetSubscriptionRequest">GetSubscriptionRequest</h3>
        <p></p>

        

        
      
        <h3 id="bytebase.v1.PatchSubscription">PatchSubscription</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>license</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Subscription">Subscription</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>instance_count</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>expires_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>started_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>plan</td>
                  <td><a href="#bytebase.v1.PlanType">PlanType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>trialing</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>org_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>org_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdateSubscriptionRequest">UpdateSubscriptionRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>patch</td>
                  <td><a href="#bytebase.v1.PatchSubscription">PatchSubscription</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.v1.PlanType">PlanType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>PLAN_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>FREE</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TEAM</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ENTERPRISE</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
        <h3 id="bytebase.v1.SubscriptionService">SubscriptionService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>GetSubscription</td>
                <td><a href="#bytebase.v1.GetSubscriptionRequest">GetSubscriptionRequest</a></td>
                <td><a href="#bytebase.v1.Subscription">Subscription</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>GetFeatureMatrix</td>
                <td><a href="#bytebase.v1.GetFeatureMatrixRequest">GetFeatureMatrixRequest</a></td>
                <td><a href="#bytebase.v1.FeatureMatrix">FeatureMatrix</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UpdateSubscription</td>
                <td><a href="#bytebase.v1.UpdateSubscriptionRequest">UpdateSubscriptionRequest</a></td>
                <td><a href="#bytebase.v1.Subscription">Subscription</a></td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>GetSubscription</td>
                <td>GET</td>
                <td>/v1/subscription</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>GetFeatureMatrix</td>
                <td>GET</td>
                <td>/v1/feature</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdateSubscription</td>
                <td>PATCH</td>
                <td>/v1/subscription</td>
                <td>patch</td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    
      
      <div class="file-heading">
        <h2 id="v1/setting_service.proto">v1/setting_service.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.AgentPluginSetting">AgentPluginSetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The URL for the agent API. </p></td>
                </tr>
              
                <tr>
                  <td>token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The token for the agent. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Announcement">Announcement</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>level</td>
                  <td><a href="#bytebase.v1.Announcement.AlertLevel">Announcement.AlertLevel</a></td>
                  <td></td>
                  <td><p>The alert level of announcemnt </p></td>
                </tr>
              
                <tr>
                  <td>text</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The text of announcemnt </p></td>
                </tr>
              
                <tr>
                  <td>link</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The optional link, user can follow the link to check extra details </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.AppIMSetting">AppIMSetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>slack</td>
                  <td><a href="#bytebase.v1.AppIMSetting.Slack">AppIMSetting.Slack</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>feishu</td>
                  <td><a href="#bytebase.v1.AppIMSetting.Feishu">AppIMSetting.Feishu</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>wecom</td>
                  <td><a href="#bytebase.v1.AppIMSetting.Wecom">AppIMSetting.Wecom</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.AppIMSetting.Feishu">AppIMSetting.Feishu</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>enabled</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>app_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>app_secret</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.AppIMSetting.Slack">AppIMSetting.Slack</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>enabled</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.AppIMSetting.Wecom">AppIMSetting.Wecom</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>enabled</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>corp_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>agent_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>secret</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DataClassificationSetting">DataClassificationSetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>configs</td>
                  <td><a href="#bytebase.v1.DataClassificationSetting.DataClassificationConfig">DataClassificationSetting.DataClassificationConfig</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DataClassificationSetting.DataClassificationConfig">DataClassificationSetting.DataClassificationConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>id is the uuid for classification. Each project can chose one classification config. </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>levels</td>
                  <td><a href="#bytebase.v1.DataClassificationSetting.DataClassificationConfig.Level">DataClassificationSetting.DataClassificationConfig.Level</a></td>
                  <td>repeated</td>
                  <td><p>levels is user defined level list for classification.
The order for the level decides its priority. </p></td>
                </tr>
              
                <tr>
                  <td>classification</td>
                  <td><a href="#bytebase.v1.DataClassificationSetting.DataClassificationConfig.ClassificationEntry">DataClassificationSetting.DataClassificationConfig.ClassificationEntry</a></td>
                  <td>repeated</td>
                  <td><p>classification is the id - DataClassification map.
The id should in [0-9]&#43;-[0-9]&#43;-[0-9]&#43; format. </p></td>
                </tr>
              
                <tr>
                  <td>classification_from_config</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>If true, we will only store the classification in the config.
Otherwise we will get the classification from table/column comment,
and write back to the schema metadata. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DataClassificationSetting.DataClassificationConfig.ClassificationEntry">DataClassificationSetting.DataClassificationConfig.ClassificationEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#bytebase.v1.DataClassificationSetting.DataClassificationConfig.DataClassification">DataClassificationSetting.DataClassificationConfig.DataClassification</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DataClassificationSetting.DataClassificationConfig.DataClassification">DataClassificationSetting.DataClassificationConfig.DataClassification</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>id is the classification id in [0-9]&#43;-[0-9]&#43;-[0-9]&#43; format. </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>description</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>level_id</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DataClassificationSetting.DataClassificationConfig.Level">DataClassificationSetting.DataClassificationConfig.Level</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>description</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ExternalApprovalSetting">ExternalApprovalSetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>nodes</td>
                  <td><a href="#bytebase.v1.ExternalApprovalSetting.Node">ExternalApprovalSetting.Node</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ExternalApprovalSetting.Node">ExternalApprovalSetting.Node</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A unique identifier for a node in UUID format.
We will also include the id in the message sending to the external relay service to identify the node. </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The title of the node. </p></td>
                </tr>
              
                <tr>
                  <td>endpoint</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The external endpoint for the relay service, e.g. &#34;http://hello:1234&#34;. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GetSettingRequest">GetSettingRequest</h3>
        <p>The request message for getting a setting.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The resource name of the setting. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GetSettingResponse">GetSettingResponse</h3>
        <p>The response message for getting a setting.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>setting</td>
                  <td><a href="#bytebase.v1.Setting">Setting</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListSettingsRequest">ListSettingsRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of settings to return. The service may return fewer than
this value.
If unspecified, at most 50 settings will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A page token, received from a previous `ListSettings` call.
Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to `ListSettings` must match
the call that provided the page token. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListSettingsResponse">ListSettingsResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>settings</td>
                  <td><a href="#bytebase.v1.Setting">Setting</a></td>
                  <td>repeated</td>
                  <td><p>The settings from the specified request. </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.MaskingAlgorithmSetting">MaskingAlgorithmSetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>algorithms</td>
                  <td><a href="#bytebase.v1.MaskingAlgorithmSetting.Algorithm">MaskingAlgorithmSetting.Algorithm</a></td>
                  <td>repeated</td>
                  <td><p>algorithms is the list of masking algorithms. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.MaskingAlgorithmSetting.Algorithm">MaskingAlgorithmSetting.Algorithm</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>id is the uuid for masking algorithm. </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>title is the title for masking algorithm. </p></td>
                </tr>
              
                <tr>
                  <td>description</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>description is the description for masking algorithm. </p></td>
                </tr>
              
                <tr>
                  <td>category</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Category is the category for masking algorithm. Currently, it accepts 2 categories only: MASK and HASH.
The range of accepted Payload is decided by the category.
MASK: FullMask, RangeMask
HASH: MD5Mask </p></td>
                </tr>
              
                <tr>
                  <td>full_mask</td>
                  <td><a href="#bytebase.v1.MaskingAlgorithmSetting.Algorithm.FullMask">MaskingAlgorithmSetting.Algorithm.FullMask</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>range_mask</td>
                  <td><a href="#bytebase.v1.MaskingAlgorithmSetting.Algorithm.RangeMask">MaskingAlgorithmSetting.Algorithm.RangeMask</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>md5_mask</td>
                  <td><a href="#bytebase.v1.MaskingAlgorithmSetting.Algorithm.MD5Mask">MaskingAlgorithmSetting.Algorithm.MD5Mask</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>inner_outer_mask</td>
                  <td><a href="#bytebase.v1.MaskingAlgorithmSetting.Algorithm.InnerOuterMask">MaskingAlgorithmSetting.Algorithm.InnerOuterMask</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.MaskingAlgorithmSetting.Algorithm.FullMask">MaskingAlgorithmSetting.Algorithm.FullMask</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>substitution</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>substitution is the string used to replace the original value, the
max length of the string is 16 bytes. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.MaskingAlgorithmSetting.Algorithm.InnerOuterMask">MaskingAlgorithmSetting.Algorithm.InnerOuterMask</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>prefix_len</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>suffix_len</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.v1.MaskingAlgorithmSetting.Algorithm.InnerOuterMask.MaskType">MaskingAlgorithmSetting.Algorithm.InnerOuterMask.MaskType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>substitution</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.MaskingAlgorithmSetting.Algorithm.MD5Mask">MaskingAlgorithmSetting.Algorithm.MD5Mask</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>salt</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>salt is the salt value to generate a different hash that with the word alone. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.MaskingAlgorithmSetting.Algorithm.RangeMask">MaskingAlgorithmSetting.Algorithm.RangeMask</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>slices</td>
                  <td><a href="#bytebase.v1.MaskingAlgorithmSetting.Algorithm.RangeMask.Slice">MaskingAlgorithmSetting.Algorithm.RangeMask.Slice</a></td>
                  <td>repeated</td>
                  <td><p>We store it as a repeated field to face the fact that the original value may have multiple parts should be masked.
But frontend can be started with a single rule easily. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.MaskingAlgorithmSetting.Algorithm.RangeMask.Slice">MaskingAlgorithmSetting.Algorithm.RangeMask.Slice</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>start</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>start is the start index of the original value, start from 0 and should be less than stop. </p></td>
                </tr>
              
                <tr>
                  <td>end</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>stop is the stop index of the original value, should be less than the length of the original value. </p></td>
                </tr>
              
                <tr>
                  <td>substitution</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>substitution is the string used to replace the OriginalValue[start:end). </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.MaximumSQLResultSizeSetting">MaximumSQLResultSizeSetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>limit</td>
                  <td><a href="#int64">int64</a></td>
                  <td></td>
                  <td><p>The limit is in bytes.
The default value is 100MB, we will use the default value if the setting not exists, or the limit &lt;= 0. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SMTPMailDeliverySettingValue">SMTPMailDeliverySettingValue</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>server</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The SMTP server address. </p></td>
                </tr>
              
                <tr>
                  <td>port</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The SMTP server port. </p></td>
                </tr>
              
                <tr>
                  <td>encryption</td>
                  <td><a href="#bytebase.v1.SMTPMailDeliverySettingValue.Encryption">SMTPMailDeliverySettingValue.Encryption</a></td>
                  <td></td>
                  <td><p>The SMTP server encryption. </p></td>
                </tr>
              
                <tr>
                  <td>ca</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p>The CA, KEY, and CERT for the SMTP server.
Not used. </p></td>
                </tr>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>cert</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>authentication</td>
                  <td><a href="#bytebase.v1.SMTPMailDeliverySettingValue.Authentication">SMTPMailDeliverySettingValue.Authentication</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>username</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>password</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p>If not specified, server will use the existed password. </p></td>
                </tr>
              
                <tr>
                  <td>from</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The sender email address. </p></td>
                </tr>
              
                <tr>
                  <td>to</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The recipient email address, used with validate_only to send test email. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SchemaTemplateSetting">SchemaTemplateSetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>field_templates</td>
                  <td><a href="#bytebase.v1.SchemaTemplateSetting.FieldTemplate">SchemaTemplateSetting.FieldTemplate</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>column_types</td>
                  <td><a href="#bytebase.v1.SchemaTemplateSetting.ColumnType">SchemaTemplateSetting.ColumnType</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>table_templates</td>
                  <td><a href="#bytebase.v1.SchemaTemplateSetting.TableTemplate">SchemaTemplateSetting.TableTemplate</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SchemaTemplateSetting.ColumnType">SchemaTemplateSetting.ColumnType</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>engine</td>
                  <td><a href="#bytebase.v1.Engine">Engine</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>enabled</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>types</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SchemaTemplateSetting.FieldTemplate">SchemaTemplateSetting.FieldTemplate</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>engine</td>
                  <td><a href="#bytebase.v1.Engine">Engine</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>category</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>column</td>
                  <td><a href="#bytebase.v1.ColumnMetadata">ColumnMetadata</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>config</td>
                  <td><a href="#bytebase.v1.ColumnConfig">ColumnConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SchemaTemplateSetting.TableTemplate">SchemaTemplateSetting.TableTemplate</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>engine</td>
                  <td><a href="#bytebase.v1.Engine">Engine</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>category</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>table</td>
                  <td><a href="#bytebase.v1.TableMetadata">TableMetadata</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>config</td>
                  <td><a href="#bytebase.v1.TableConfig">TableConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SemanticTypeSetting">SemanticTypeSetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>types</td>
                  <td><a href="#bytebase.v1.SemanticTypeSetting.SemanticType">SemanticTypeSetting.SemanticType</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SemanticTypeSetting.SemanticType">SemanticTypeSetting.SemanticType</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>id is the uuid for semantic type. </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>the title of the semantic type, it should not be empty. </p></td>
                </tr>
              
                <tr>
                  <td>description</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>the description of the semantic type, it can be empty. </p></td>
                </tr>
              
                <tr>
                  <td>partial_mask_algorithm_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>the partial mask algorithm id for the semantic type, if it is empty, should use the default partial mask algorithm. </p></td>
                </tr>
              
                <tr>
                  <td>full_mask_algorithm_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>the full mask algorithm id for the semantic type, if it is empty, should use the default full mask algorithm. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Setting">Setting</h3>
        <p>The schema of setting.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The resource name of the setting. Must be one of the following forms:

- `setting/{setting}`
For example, &#34;settings/bb.branding.logo&#34; </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#bytebase.v1.Value">Value</a></td>
                  <td></td>
                  <td><p>The value of the setting. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdateSettingRequest">UpdateSettingRequest</h3>
        <p>The request message for updating or creating a setting.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>setting</td>
                  <td><a href="#bytebase.v1.Setting">Setting</a></td>
                  <td></td>
                  <td><p>The setting to update. </p></td>
                </tr>
              
                <tr>
                  <td>validate_only</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>validate_only is a flag to indicate whether to validate the setting value,
server would not persist the setting value if it is true. </p></td>
                </tr>
              
                <tr>
                  <td>allow_missing</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>update_mask</td>
                  <td><a href="#google.protobuf.FieldMask">google.protobuf.FieldMask</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Value">Value</h3>
        <p>The data in setting value.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>string_value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Defines this value as being a string value. </p></td>
                </tr>
              
                <tr>
                  <td>smtp_mail_delivery_setting_value</td>
                  <td><a href="#bytebase.v1.SMTPMailDeliverySettingValue">SMTPMailDeliverySettingValue</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>app_im_setting_value</td>
                  <td><a href="#bytebase.v1.AppIMSetting">AppIMSetting</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>agent_plugin_setting_value</td>
                  <td><a href="#bytebase.v1.AgentPluginSetting">AgentPluginSetting</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>workspace_profile_setting_value</td>
                  <td><a href="#bytebase.v1.WorkspaceProfileSetting">WorkspaceProfileSetting</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>workspace_approval_setting_value</td>
                  <td><a href="#bytebase.v1.WorkspaceApprovalSetting">WorkspaceApprovalSetting</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>workspace_trial_setting_value</td>
                  <td><a href="#bytebase.v1.WorkspaceTrialSetting">WorkspaceTrialSetting</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>external_approval_setting_value</td>
                  <td><a href="#bytebase.v1.ExternalApprovalSetting">ExternalApprovalSetting</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>schema_template_setting_value</td>
                  <td><a href="#bytebase.v1.SchemaTemplateSetting">SchemaTemplateSetting</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>data_classification_setting_value</td>
                  <td><a href="#bytebase.v1.DataClassificationSetting">DataClassificationSetting</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>semantic_type_setting_value</td>
                  <td><a href="#bytebase.v1.SemanticTypeSetting">SemanticTypeSetting</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>masking_algorithm_setting_value</td>
                  <td><a href="#bytebase.v1.MaskingAlgorithmSetting">MaskingAlgorithmSetting</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>maximum_sql_result_size_setting</td>
                  <td><a href="#bytebase.v1.MaximumSQLResultSizeSetting">MaximumSQLResultSizeSetting</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.WorkspaceApprovalSetting">WorkspaceApprovalSetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>rules</td>
                  <td><a href="#bytebase.v1.WorkspaceApprovalSetting.Rule">WorkspaceApprovalSetting.Rule</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.WorkspaceApprovalSetting.Rule">WorkspaceApprovalSetting.Rule</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>template</td>
                  <td><a href="#bytebase.v1.ApprovalTemplate">ApprovalTemplate</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>condition</td>
                  <td><a href="#google.type.Expr">google.type.Expr</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.WorkspaceProfileSetting">WorkspaceProfileSetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>external_url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The URL user visits Bytebase.

The external URL is used for:
1. Constructing the correct callback URL when configuring the VCS provider. The callback URL points to the frontend.
2. Creating the correct webhook endpoint when configuring the project GitOps workflow. The webhook endpoint points to the backend. </p></td>
                </tr>
              
                <tr>
                  <td>disallow_signup</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Disallow self-service signup, users can only be invited by the owner. </p></td>
                </tr>
              
                <tr>
                  <td>require_2fa</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Require 2FA for all users. </p></td>
                </tr>
              
                <tr>
                  <td>outbound_ip_list</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>outbound_ip_list is the outbound IP for Bytebase instance in SaaS mode. </p></td>
                </tr>
              
                <tr>
                  <td>gitops_webhook_url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The webhook URL for the GitOps workflow. </p></td>
                </tr>
              
                <tr>
                  <td>token_duration</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p>The duration for token. </p></td>
                </tr>
              
                <tr>
                  <td>announcement</td>
                  <td><a href="#bytebase.v1.Announcement">Announcement</a></td>
                  <td></td>
                  <td><p>The setting of custom announcement </p></td>
                </tr>
              
                <tr>
                  <td>maximum_role_expiration</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p>The max duration for role expired. </p></td>
                </tr>
              
                <tr>
                  <td>domains</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The workspace domain, e.g. bytebase.com. </p></td>
                </tr>
              
                <tr>
                  <td>enforce_identity_domain</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Only user and group from the domains can be created and login. </p></td>
                </tr>
              
                <tr>
                  <td>database_change_mode</td>
                  <td><a href="#bytebase.v1.DatabaseChangeMode">DatabaseChangeMode</a></td>
                  <td></td>
                  <td><p>The workspace database change mode. </p></td>
                </tr>
              
                <tr>
                  <td>disallow_password_signin</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Whether to disallow password signin. (Except workspace admins) </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.WorkspaceTrialSetting">WorkspaceTrialSetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>instance_count</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>expire_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>issued_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>subject</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>org_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>plan</td>
                  <td><a href="#bytebase.v1.PlanType">PlanType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.v1.Announcement.AlertLevel">Announcement.AlertLevel</h3>
        <p>We support three levels of AlertLevel: INFO, WARNING, and ERROR.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>ALERT_LEVEL_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ALERT_LEVEL_INFO</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ALERT_LEVEL_WARNING</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ALERT_LEVEL_CRITICAL</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.DatabaseChangeMode">DatabaseChangeMode</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>DATABASE_CHANGE_MODE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PIPELINE</td>
                <td>1</td>
                <td><p>A more advanced database change process, including custom approval workflows and other advanced features.
Default to this mode.</p></td>
              </tr>
            
              <tr>
                <td>EDITOR</td>
                <td>2</td>
                <td><p>A simple database change process in SQL editor. Users can execute SQL directly.</p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.MaskingAlgorithmSetting.Algorithm.InnerOuterMask.MaskType">MaskingAlgorithmSetting.Algorithm.InnerOuterMask.MaskType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>MASK_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>INNER</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>OUTER</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.SMTPMailDeliverySettingValue.Authentication">SMTPMailDeliverySettingValue.Authentication</h3>
        <p>We support four types of SMTP authentication: NONE, PLAIN, LOGIN, and CRAM-MD5.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>AUTHENTICATION_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>AUTHENTICATION_NONE</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>AUTHENTICATION_PLAIN</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>AUTHENTICATION_LOGIN</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>AUTHENTICATION_CRAM_MD5</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.SMTPMailDeliverySettingValue.Encryption">SMTPMailDeliverySettingValue.Encryption</h3>
        <p>We support three types of SMTP encryption: NONE, STARTTLS, and SSL/TLS.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>ENCRYPTION_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ENCRYPTION_NONE</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ENCRYPTION_STARTTLS</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ENCRYPTION_SSL_TLS</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
        <h3 id="bytebase.v1.SettingService">SettingService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>ListSettings</td>
                <td><a href="#bytebase.v1.ListSettingsRequest">ListSettingsRequest</a></td>
                <td><a href="#bytebase.v1.ListSettingsResponse">ListSettingsResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>GetSetting</td>
                <td><a href="#bytebase.v1.GetSettingRequest">GetSettingRequest</a></td>
                <td><a href="#bytebase.v1.Setting">Setting</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UpdateSetting</td>
                <td><a href="#bytebase.v1.UpdateSettingRequest">UpdateSettingRequest</a></td>
                <td><a href="#bytebase.v1.Setting">Setting</a></td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>ListSettings</td>
                <td>GET</td>
                <td>/v1/settings</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>GetSetting</td>
                <td>GET</td>
                <td>/v1/{name=settings/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdateSetting</td>
                <td>PATCH</td>
                <td>/v1/{setting.name=settings/*}</td>
                <td>setting</td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    
      
      <div class="file-heading">
        <h2 id="v1/sheet_service.proto">v1/sheet_service.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.CreateSheetRequest">CreateSheetRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The parent resource where this sheet will be created.
Format: projects/{project} </p></td>
                </tr>
              
                <tr>
                  <td>sheet</td>
                  <td><a href="#bytebase.v1.Sheet">Sheet</a></td>
                  <td></td>
                  <td><p>The sheet to create. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GetSheetRequest">GetSheetRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the sheet to retrieve.
Format: projects/{project}/sheets/{sheet} </p></td>
                </tr>
              
                <tr>
                  <td>raw</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>By default, the content of the sheet is cut off, set the `raw` to true to retrieve the full content. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Sheet">Sheet</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the sheet resource, generated by the server.
Canonical parent is project.
Format: projects/{project}/sheets/{sheet} </p></td>
                </tr>
              
                <tr>
                  <td>database</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The database resource name.
Format: instances/{instance}/databases/{database}
If the database parent doesn&#39;t exist, the database field is empty. </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The title of the sheet. </p></td>
                </tr>
              
                <tr>
                  <td>creator</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The creator of the Sheet.
Format: users/{email} </p></td>
                </tr>
              
                <tr>
                  <td>create_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>The create time of the sheet. </p></td>
                </tr>
              
                <tr>
                  <td>update_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>The last update time of the sheet. </p></td>
                </tr>
              
                <tr>
                  <td>content</td>
                  <td><a href="#bytes">bytes</a></td>
                  <td></td>
                  <td><p>The content of the sheet.
By default, it will be cut off, if it doesn&#39;t match the `content_size`, you can
set the `raw` to true in GetSheet request to retrieve the full content. </p></td>
                </tr>
              
                <tr>
                  <td>content_size</td>
                  <td><a href="#int64">int64</a></td>
                  <td></td>
                  <td><p>content_size is the full size of the content, may not match the size of the `content` field. </p></td>
                </tr>
              
                <tr>
                  <td>payload</td>
                  <td><a href="#bytebase.v1.SheetPayload">SheetPayload</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>engine</td>
                  <td><a href="#bytebase.v1.Engine">Engine</a></td>
                  <td></td>
                  <td><p>The SQL dialect. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SheetCommand">SheetCommand</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>start</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>end</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SheetPayload">SheetPayload</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.v1.SheetPayload.Type">SheetPayload.Type</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>database_config</td>
                  <td><a href="#bytebase.v1.DatabaseConfig">DatabaseConfig</a></td>
                  <td></td>
                  <td><p>The snapshot of the database config when creating the sheet, be used to compare with the baseline_database_config and apply the diff to the database. </p></td>
                </tr>
              
                <tr>
                  <td>baseline_database_config</td>
                  <td><a href="#bytebase.v1.DatabaseConfig">DatabaseConfig</a></td>
                  <td></td>
                  <td><p>The snapshot of the baseline database config when creating the sheet. </p></td>
                </tr>
              
                <tr>
                  <td>commands</td>
                  <td><a href="#bytebase.v1.SheetCommand">SheetCommand</a></td>
                  <td>repeated</td>
                  <td><p>The start and end position of each command in the sheet statement. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdateSheetRequest">UpdateSheetRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>sheet</td>
                  <td><a href="#bytebase.v1.Sheet">Sheet</a></td>
                  <td></td>
                  <td><p>The sheet to update.

The sheet&#39;s `name` field is used to identify the sheet to update.
Format: projects/{project}/sheets/{sheet} </p></td>
                </tr>
              
                <tr>
                  <td>update_mask</td>
                  <td><a href="#google.protobuf.FieldMask">google.protobuf.FieldMask</a></td>
                  <td></td>
                  <td><p>The list of fields to be updated.
Fields are specified relative to the sheet.
(e.g. `title`, `statement`; *not* `sheet.title` or `sheet.statement`)
Only support update the following fields for now:
- `title`
- `statement` </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.v1.SheetPayload.Type">SheetPayload.Type</h3>
        <p>Type of the SheetPayload.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SCHEMA_DESIGN</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
        <h3 id="bytebase.v1.SheetService">SheetService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>CreateSheet</td>
                <td><a href="#bytebase.v1.CreateSheetRequest">CreateSheetRequest</a></td>
                <td><a href="#bytebase.v1.Sheet">Sheet</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>GetSheet</td>
                <td><a href="#bytebase.v1.GetSheetRequest">GetSheetRequest</a></td>
                <td><a href="#bytebase.v1.Sheet">Sheet</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UpdateSheet</td>
                <td><a href="#bytebase.v1.UpdateSheetRequest">UpdateSheetRequest</a></td>
                <td><a href="#bytebase.v1.Sheet">Sheet</a></td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>CreateSheet</td>
                <td>POST</td>
                <td>/v1/{parent=projects/*}/sheets</td>
                <td>sheet</td>
              </tr>
              
            
              
              
              <tr>
                <td>GetSheet</td>
                <td>GET</td>
                <td>/v1/{name=projects/*/sheets/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdateSheet</td>
                <td>PATCH</td>
                <td>/v1/{sheet.name=projects/*/sheets/*}</td>
                <td>sheet</td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    
      
      <div class="file-heading">
        <h2 id="v1/sql_service.proto">v1/sql_service.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.AdminExecuteRequest">AdminExecuteRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the instance name to execute the query against.
Format: instances/{instance}/databases/{databaseName} </p></td>
                </tr>
              
                <tr>
                  <td>statement</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The SQL statement to execute. </p></td>
                </tr>
              
                <tr>
                  <td>limit</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of rows to return. </p></td>
                </tr>
              
                <tr>
                  <td>timeout</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p>The timeout for the request. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.AdminExecuteResponse">AdminExecuteResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>results</td>
                  <td><a href="#bytebase.v1.QueryResult">QueryResult</a></td>
                  <td>repeated</td>
                  <td><p>The query results. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Advice">Advice</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>status</td>
                  <td><a href="#bytebase.v1.Advice.Status">Advice.Status</a></td>
                  <td></td>
                  <td><p>The advice status. </p></td>
                </tr>
              
                <tr>
                  <td>code</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The advice code. </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The advice title. </p></td>
                </tr>
              
                <tr>
                  <td>content</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The advice content. </p></td>
                </tr>
              
                <tr>
                  <td>line</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The advice line number in the SQL statement. </p></td>
                </tr>
              
                <tr>
                  <td>column</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The advice column number in the SQL statement. </p></td>
                </tr>
              
                <tr>
                  <td>detail</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The advice detail. </p></td>
                </tr>
              
                <tr>
                  <td>start_position</td>
                  <td><a href="#bytebase.v1.Position">Position</a></td>
                  <td></td>
                  <td><p>1-based Position of the SQL statement.
To supersede `line` and `column` above. </p></td>
                </tr>
              
                <tr>
                  <td>end_position</td>
                  <td><a href="#bytebase.v1.Position">Position</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.CheckRequest">CheckRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The database name to check against.
Format: instances/{instance}/databases/{database} </p></td>
                </tr>
              
                <tr>
                  <td>statement</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>metadata</td>
                  <td><a href="#bytebase.v1.DatabaseMetadata">DatabaseMetadata</a></td>
                  <td></td>
                  <td><p>The database metadata to check against. It can be used to check against an uncommitted metadata.
If not provided, the database metadata will be fetched from the database. </p></td>
                </tr>
              
                <tr>
                  <td>change_type</td>
                  <td><a href="#bytebase.v1.CheckRequest.ChangeType">CheckRequest.ChangeType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.CheckResponse">CheckResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>advices</td>
                  <td><a href="#bytebase.v1.Advice">Advice</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DifferPreviewRequest">DifferPreviewRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>engine</td>
                  <td><a href="#bytebase.v1.Engine">Engine</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>old_schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>new_metadata</td>
                  <td><a href="#bytebase.v1.DatabaseMetadata">DatabaseMetadata</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DifferPreviewResponse">DifferPreviewResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ExecuteRequest">ExecuteRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the instance name to execute the query against.
Format: instances/{instance}/databases/{databaseName} </p></td>
                </tr>
              
                <tr>
                  <td>statement</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The SQL statement to execute. </p></td>
                </tr>
              
                <tr>
                  <td>limit</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of rows to return. </p></td>
                </tr>
              
                <tr>
                  <td>timeout</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p>The timeout for the request. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ExecuteResponse">ExecuteResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>results</td>
                  <td><a href="#bytebase.v1.QueryResult">QueryResult</a></td>
                  <td>repeated</td>
                  <td><p>The execute results. </p></td>
                </tr>
              
                <tr>
                  <td>advices</td>
                  <td><a href="#bytebase.v1.Advice">Advice</a></td>
                  <td>repeated</td>
                  <td><p>The execute advices. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ExportRequest">ExportRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the instance name to execute the query against.
Format: instances/{instance}/databases/{databaseName}
Format: projects/{project}/issues/{issue} for data export issue. </p></td>
                </tr>
              
                <tr>
                  <td>statement</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The SQL statement to execute. </p></td>
                </tr>
              
                <tr>
                  <td>limit</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of rows to return. </p></td>
                </tr>
              
                <tr>
                  <td>format</td>
                  <td><a href="#bytebase.v1.ExportFormat">ExportFormat</a></td>
                  <td></td>
                  <td><p>The export format. </p></td>
                </tr>
              
                <tr>
                  <td>admin</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>The admin is used for workspace owner and DBA for exporting data from SQL Editor Admin mode.
The exported data is not masked. </p></td>
                </tr>
              
                <tr>
                  <td>password</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The zip password provide by users. </p></td>
                </tr>
              
                <tr>
                  <td>data_source_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The id of data source.
It is used for querying admin data source even if the instance has read-only data sources.
Or it can be used to query a specific read-only data source. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ExportResponse">ExportResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>content</td>
                  <td><a href="#bytes">bytes</a></td>
                  <td></td>
                  <td><p>The export file content. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GenerateRestoreSQLRequest">GenerateRestoreSQLRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The database name to execute the query against.
Format: instances/{instance}/databases/{databaseName} </p></td>
                </tr>
              
                <tr>
                  <td>sheet</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The resource name of the sheet. It is used to get the original statement.
Format: projects/{project}/sheets/{sheet} </p></td>
                </tr>
              
                <tr>
                  <td>backup_data_source</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The data source to restore from.
Format: instances/{instance}/databases/{databaseName}, for general engines.
Or instances/{instance}/databases/{databaseName}/schemas/{schemaName}, for PG only. </p></td>
                </tr>
              
                <tr>
                  <td>backup_table</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The backup table name. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GenerateRestoreSQLResponse">GenerateRestoreSQLResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>statement</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The restore SQL statement. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ParseMyBatisMapperRequest">ParseMyBatisMapperRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>content</td>
                  <td><a href="#bytes">bytes</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ParseMyBatisMapperResponse">ParseMyBatisMapperResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>statements</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.PrettyRequest">PrettyRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>engine</td>
                  <td><a href="#bytebase.v1.Engine">Engine</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>current_schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The SDL format SQL schema information that was dumped from a database engine.
This information will be sorted to match the order of statements in the userSchema. </p></td>
                </tr>
              
                <tr>
                  <td>expected_schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The expected SDL schema. This schema will be checked for correctness and normalized. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.PrettyResponse">PrettyResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>current_schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The pretty-formatted version of current schema. </p></td>
                </tr>
              
                <tr>
                  <td>expected_schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The expected SDL schema after normalizing. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.QueryHistory">QueryHistory</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name for the query history.
Format: queryHistories/{uid} </p></td>
                </tr>
              
                <tr>
                  <td>database</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The database name to execute the query.
Format: instances/{instance}/databases/{databaseName} </p></td>
                </tr>
              
                <tr>
                  <td>creator</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>create_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>statement</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>error</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>duration</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.v1.QueryHistory.Type">QueryHistory.Type</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.QueryRequest">QueryRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the instance name to execute the query against.
Format: instances/{instance}/databases/{databaseName} </p></td>
                </tr>
              
                <tr>
                  <td>statement</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The SQL statement to execute. </p></td>
                </tr>
              
                <tr>
                  <td>limit</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of rows to return. </p></td>
                </tr>
              
                <tr>
                  <td>timeout</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td>optional</td>
                  <td><p>The timeout for the request. </p></td>
                </tr>
              
                <tr>
                  <td>data_source_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The id of data source.
It is used for querying admin data source even if the instance has read-only data sources.
Or it can be used to query a specific read-only data source. </p></td>
                </tr>
              
                <tr>
                  <td>explain</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Explain the statement. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.QueryResponse">QueryResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>results</td>
                  <td><a href="#bytebase.v1.QueryResult">QueryResult</a></td>
                  <td>repeated</td>
                  <td><p>The query results. </p></td>
                </tr>
              
                <tr>
                  <td>advices</td>
                  <td><a href="#bytebase.v1.Advice">Advice</a></td>
                  <td>repeated</td>
                  <td><p>The query advices. </p></td>
                </tr>
              
                <tr>
                  <td>allow_export</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>The query is allowed to be exported or not. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.QueryResult">QueryResult</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>column_names</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>Column names of the query result. </p></td>
                </tr>
              
                <tr>
                  <td>column_type_names</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>Column types of the query result.
The types come from the Golang SQL driver. </p></td>
                </tr>
              
                <tr>
                  <td>rows</td>
                  <td><a href="#bytebase.v1.QueryRow">QueryRow</a></td>
                  <td>repeated</td>
                  <td><p>Rows of the query result. </p></td>
                </tr>
              
                <tr>
                  <td>masked</td>
                  <td><a href="#bool">bool</a></td>
                  <td>repeated</td>
                  <td><p>Columns are masked or not. </p></td>
                </tr>
              
                <tr>
                  <td>sensitive</td>
                  <td><a href="#bool">bool</a></td>
                  <td>repeated</td>
                  <td><p>Columns are sensitive or not. </p></td>
                </tr>
              
                <tr>
                  <td>error</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The error message if the query failed. </p></td>
                </tr>
              
                <tr>
                  <td>latency</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p>The time it takes to execute the query. </p></td>
                </tr>
              
                <tr>
                  <td>statement</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The query statement for the result. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.QueryRow">QueryRow</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>values</td>
                  <td><a href="#bytebase.v1.RowValue">RowValue</a></td>
                  <td>repeated</td>
                  <td><p>Row values of the query result. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.RowValue">RowValue</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>null_value</td>
                  <td><a href="#google.protobuf.NullValue">google.protobuf.NullValue</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>bool_value</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>bytes_value</td>
                  <td><a href="#bytes">bytes</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>double_value</td>
                  <td><a href="#double">double</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>float_value</td>
                  <td><a href="#float">float</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>int32_value</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>int64_value</td>
                  <td><a href="#int64">int64</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>string_value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>uint32_value</td>
                  <td><a href="#uint32">uint32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>uint64_value</td>
                  <td><a href="#uint64">uint64</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value_value</td>
                  <td><a href="#google.protobuf.Value">google.protobuf.Value</a></td>
                  <td></td>
                  <td><p>value_value is used for Spanner and TUPLE ARRAY MAP in Clickhouse only. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SearchQueryHistoriesRequest">SearchQueryHistoriesRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>Not used. The maximum number of histories to return.
The service may return fewer than this value.
If unspecified, at most 100 history entries will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Not used. A page token, received from a previous `ListQueryHistory` call.
Provide this to retrieve the subsequent page. </p></td>
                </tr>
              
                <tr>
                  <td>filter</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>filter is the filter to apply on the search query history,
follow the [ebnf](https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_form) syntax.
Support filter by:
- database, for example:
   database = &#34;instances/{instance}/databases/{database}&#34;
- instance, for example:
   instance = &#34;instance/{instance}&#34;
- type, for example:
   type = &#34;QUERY&#34; </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SearchQueryHistoriesResponse">SearchQueryHistoriesResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>query_histories</td>
                  <td><a href="#bytebase.v1.QueryHistory">QueryHistory</a></td>
                  <td>repeated</td>
                  <td><p>The list of history. </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A token to retrieve next page of history.
Pass this value in the page_token field in the subsequent call to `ListQueryHistory` method
to retrieve the next page of history. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.StringifyMetadataRequest">StringifyMetadataRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>metadata</td>
                  <td><a href="#bytebase.v1.DatabaseMetadata">DatabaseMetadata</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>engine</td>
                  <td><a href="#bytebase.v1.Engine">Engine</a></td>
                  <td></td>
                  <td><p>The database engine of the schema string. </p></td>
                </tr>
              
                <tr>
                  <td>classification_from_config</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>If false, we will build the raw common by classification in database config. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.StringifyMetadataResponse">StringifyMetadataResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.v1.Advice.Status">Advice.Status</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>STATUS_UNSPECIFIED</td>
                <td>0</td>
                <td><p>Unspecified.</p></td>
              </tr>
            
              <tr>
                <td>SUCCESS</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>WARNING</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ERROR</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.CheckRequest.ChangeType">CheckRequest.ChangeType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>CHANGE_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DDL</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DDL_GHOST</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DML</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SQL_EDITOR</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.v1.QueryHistory.Type">QueryHistory.Type</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>QUERY</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>EXPORT</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
        <h3 id="bytebase.v1.SQLService">SQLService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>Query</td>
                <td><a href="#bytebase.v1.QueryRequest">QueryRequest</a></td>
                <td><a href="#bytebase.v1.QueryResponse">QueryResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>Execute</td>
                <td><a href="#bytebase.v1.ExecuteRequest">ExecuteRequest</a></td>
                <td><a href="#bytebase.v1.ExecuteResponse">ExecuteResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>AdminExecute</td>
                <td><a href="#bytebase.v1.AdminExecuteRequest">AdminExecuteRequest</a> stream</td>
                <td><a href="#bytebase.v1.AdminExecuteResponse">AdminExecuteResponse</a> stream</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SearchQueryHistories</td>
                <td><a href="#bytebase.v1.SearchQueryHistoriesRequest">SearchQueryHistoriesRequest</a></td>
                <td><a href="#bytebase.v1.SearchQueryHistoriesResponse">SearchQueryHistoriesResponse</a></td>
                <td><p>SearchQueryHistories searches query histories for the caller.</p></td>
              </tr>
            
              <tr>
                <td>Export</td>
                <td><a href="#bytebase.v1.ExportRequest">ExportRequest</a></td>
                <td><a href="#bytebase.v1.ExportResponse">ExportResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>Check</td>
                <td><a href="#bytebase.v1.CheckRequest">CheckRequest</a></td>
                <td><a href="#bytebase.v1.CheckResponse">CheckResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ParseMyBatisMapper</td>
                <td><a href="#bytebase.v1.ParseMyBatisMapperRequest">ParseMyBatisMapperRequest</a></td>
                <td><a href="#bytebase.v1.ParseMyBatisMapperResponse">ParseMyBatisMapperResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>Pretty</td>
                <td><a href="#bytebase.v1.PrettyRequest">PrettyRequest</a></td>
                <td><a href="#bytebase.v1.PrettyResponse">PrettyResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>StringifyMetadata</td>
                <td><a href="#bytebase.v1.StringifyMetadataRequest">StringifyMetadataRequest</a></td>
                <td><a href="#bytebase.v1.StringifyMetadataResponse">StringifyMetadataResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>GenerateRestoreSQL</td>
                <td><a href="#bytebase.v1.GenerateRestoreSQLRequest">GenerateRestoreSQLRequest</a></td>
                <td><a href="#bytebase.v1.GenerateRestoreSQLResponse">GenerateRestoreSQLResponse</a></td>
                <td><p>Deprecated.</p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>Query</td>
                <td>POST</td>
                <td>/v1/{name=instances/*/databases/*}:query</td>
                <td>*</td>
              </tr>
              
              <tr>
                <td>Query</td>
                <td>POST</td>
                <td>/v1/{name=instances/*}:query</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>Execute</td>
                <td>POST</td>
                <td>/v1/{name=instances/*/databases/*}:execute</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>AdminExecute</td>
                <td>GET</td>
                <td>/v1:adminExecute</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>SearchQueryHistories</td>
                <td>POST</td>
                <td>/v1/queryHistories:search</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>Export</td>
                <td>POST</td>
                <td>/v1/{name=instances/*/databases/*}:export</td>
                <td>*</td>
              </tr>
              
              <tr>
                <td>Export</td>
                <td>POST</td>
                <td>/v1/{name=instances/*}:export</td>
                <td>*</td>
              </tr>
              
              <tr>
                <td>Export</td>
                <td>POST</td>
                <td>/v1/{name=projects/*/issues/*}:export</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>Check</td>
                <td>POST</td>
                <td>/v1/sql/check</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>ParseMyBatisMapper</td>
                <td>POST</td>
                <td>/v1/sql/parseMyBatisMapper</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>Pretty</td>
                <td>POST</td>
                <td>/v1/sql/pretty</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>StringifyMetadata</td>
                <td>POST</td>
                <td>/v1/schemaDesign:stringifyMetadata</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>GenerateRestoreSQL</td>
                <td>POST</td>
                <td>/v1/{name=instances/*/databases/*}:generateRestoreSQL</td>
                <td>*</td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    
      
      <div class="file-heading">
        <h2 id="v1/vcs_connector_service.proto">v1/vcs_connector_service.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.CreateVCSConnectorRequest">CreateVCSConnectorRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The parent resource where this vcsConnector will be created.
Format: projects/{project} </p></td>
                </tr>
              
                <tr>
                  <td>vcs_connector</td>
                  <td><a href="#bytebase.v1.VCSConnector">VCSConnector</a></td>
                  <td></td>
                  <td><p>The vcsConnector to create. </p></td>
                </tr>
              
                <tr>
                  <td>vcs_connector_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The ID to use for the vcsConnector, which will become the final component of
the vcsConnector&#39;s resource name.

This value should be 4-63 characters, and valid characters
are /[a-z][0-9]-/. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DeleteVCSConnectorRequest">DeleteVCSConnectorRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the vcsConnector to delete.
Format: projects/{project}/vcsConnectors/{vcsConnector} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GetVCSConnectorRequest">GetVCSConnectorRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the vcsConnector to retrieve.
Format: projects/{project}/vcsConnectors/{vcsConnector} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListVCSConnectorsRequest">ListVCSConnectorsRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The parent, which owns this collection of vcsConnectors.
Format: projects/{project} </p></td>
                </tr>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of databases to return. The service may return fewer than
this value.
If unspecified, at most 50 databases will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A page token, received from a previous `ListDatabases` call.
Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to `ListDatabases` must match
the call that provided the page token. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListVCSConnectorsResponse">ListVCSConnectorsResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>vcs_connectors</td>
                  <td><a href="#bytebase.v1.VCSConnector">VCSConnector</a></td>
                  <td>repeated</td>
                  <td><p>The vcsConnectors from the specified request. </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdateVCSConnectorRequest">UpdateVCSConnectorRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>vcs_connector</td>
                  <td><a href="#bytebase.v1.VCSConnector">VCSConnector</a></td>
                  <td></td>
                  <td><p>The vcsConnector to update.

The vcsConnector&#39;s `name` field is used to identify the vcsConnector to update.
Format: projects/{project}/vcsConnectors/{vcsConnector} </p></td>
                </tr>
              
                <tr>
                  <td>update_mask</td>
                  <td><a href="#google.protobuf.FieldMask">google.protobuf.FieldMask</a></td>
                  <td></td>
                  <td><p>The list of fields to be updated. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.VCSConnector">VCSConnector</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the vcsConnector resource.
Canonical parent is project.
Format: projects/{project}/vcsConnectors/{vcsConnector} </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The title of the vcs connector. </p></td>
                </tr>
              
                <tr>
                  <td>creator</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The creator of the vcsConnector.
Format: users/{email} </p></td>
                </tr>
              
                <tr>
                  <td>updater</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The updater of the vcsConnector.
Format: users/{email} </p></td>
                </tr>
              
                <tr>
                  <td>create_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>The create time of the vcsConnector. </p></td>
                </tr>
              
                <tr>
                  <td>update_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>The last update time of the vcsConnector. </p></td>
                </tr>
              
                <tr>
                  <td>vcs_provider</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the VCS.
Format: vcsProviders/{vcsProvider} </p></td>
                </tr>
              
                <tr>
                  <td>external_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The reposition external id in target VCS. </p></td>
                </tr>
              
                <tr>
                  <td>base_directory</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The root directory where Bytebase observes the file change. If empty, then it observes the entire repository. </p></td>
                </tr>
              
                <tr>
                  <td>branch</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The branch Bytebase listens to for changes. For example: main. </p></td>
                </tr>
              
                <tr>
                  <td>full_path</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>TODO(d): move these to create VCS connector API.
The full_path of the repository. For example: bytebase/sample. </p></td>
                </tr>
              
                <tr>
                  <td>web_url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The web url of the repository. For axample: https://gitlab.bytebase.com/bytebase/sample. </p></td>
                </tr>
              
                <tr>
                  <td>database_group</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Apply changes to the database group. Optional, if not set, will apply changes to all databases in the project.
Format: projects/{project}/databaseGroups/{databaseGroup} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
        <h3 id="bytebase.v1.VCSConnectorService">VCSConnectorService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>CreateVCSConnector</td>
                <td><a href="#bytebase.v1.CreateVCSConnectorRequest">CreateVCSConnectorRequest</a></td>
                <td><a href="#bytebase.v1.VCSConnector">VCSConnector</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>GetVCSConnector</td>
                <td><a href="#bytebase.v1.GetVCSConnectorRequest">GetVCSConnectorRequest</a></td>
                <td><a href="#bytebase.v1.VCSConnector">VCSConnector</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ListVCSConnectors</td>
                <td><a href="#bytebase.v1.ListVCSConnectorsRequest">ListVCSConnectorsRequest</a></td>
                <td><a href="#bytebase.v1.ListVCSConnectorsResponse">ListVCSConnectorsResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UpdateVCSConnector</td>
                <td><a href="#bytebase.v1.UpdateVCSConnectorRequest">UpdateVCSConnectorRequest</a></td>
                <td><a href="#bytebase.v1.VCSConnector">VCSConnector</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DeleteVCSConnector</td>
                <td><a href="#bytebase.v1.DeleteVCSConnectorRequest">DeleteVCSConnectorRequest</a></td>
                <td><a href="#google.protobuf.Empty">.google.protobuf.Empty</a></td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>CreateVCSConnector</td>
                <td>POST</td>
                <td>/v1/{parent=projects/*}/vcsConnectors</td>
                <td>vcs_connector</td>
              </tr>
              
            
              
              
              <tr>
                <td>GetVCSConnector</td>
                <td>GET</td>
                <td>/v1/{name=projects/*/vcsConnectors/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>ListVCSConnectors</td>
                <td>GET</td>
                <td>/v1/{parent=projects/*}/vcsConnectors</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdateVCSConnector</td>
                <td>PATCH</td>
                <td>/v1/{vcs_connector.name=projects/*/vcsConnectors/*}</td>
                <td>vcs_connector</td>
              </tr>
              
            
              
              
              <tr>
                <td>DeleteVCSConnector</td>
                <td>DELETE</td>
                <td>/v1/{name=projects/*/vcsConnectors/*}</td>
                <td></td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    
      
      <div class="file-heading">
        <h2 id="v1/vcs_provider_service.proto">v1/vcs_provider_service.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.CreateVCSProviderRequest">CreateVCSProviderRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>vcs_provider</td>
                  <td><a href="#bytebase.v1.VCSProvider">VCSProvider</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>vcs_provider_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The ID to use for the VCS provider, which will become the final component of
the VCS provider&#39;s name.

This value should be 4-63 characters, and valid characters
are /[a-z][0-9]-/. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DeleteVCSProviderRequest">DeleteVCSProviderRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the vcs provider to delete.
Format: vcsProviders/{vcsProvider} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GetVCSProviderRequest">GetVCSProviderRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the vcs provider to retrieve.
Format: vcsProviders/{vcsProvider} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListVCSConnectorsInProviderRequest">ListVCSConnectorsInProviderRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the vcs provider to retrieve the linked projects.
Format: vcsProviders/{vcsProvider} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListVCSConnectorsInProviderResponse">ListVCSConnectorsInProviderResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>vcs_connectors</td>
                  <td><a href="#bytebase.v1.VCSConnector">VCSConnector</a></td>
                  <td>repeated</td>
                  <td><p>The vcsConnectors from the specified request. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListVCSProvidersRequest">ListVCSProvidersRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>Not used. The maximum number of vcs provider to return. The service may return fewer than this value.
If unspecified, at most 100 vcs provider will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Not used. A page token, received from a previous `ListVCSProviders` call.
Provide this to retrieve the subsequent page. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.ListVCSProvidersResponse">ListVCSProvidersResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>vcs_providers</td>
                  <td><a href="#bytebase.v1.VCSProvider">VCSProvider</a></td>
                  <td>repeated</td>
                  <td><p>The list of vcs providers. </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Not used. A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SearchVCSProviderRepositoriesRequest">SearchVCSProviderRepositoriesRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the vcs provider to retrieve the vcs provider repositories.
Format: vcsProviders/{vcsProvider} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SearchVCSProviderRepositoriesResponse">SearchVCSProviderRepositoriesResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>repositories</td>
                  <td><a href="#bytebase.v1.VCSRepository">VCSRepository</a></td>
                  <td>repeated</td>
                  <td><p>The list of repositories in vcs provider. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdateVCSProviderRequest">UpdateVCSProviderRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>vcs_provider</td>
                  <td><a href="#bytebase.v1.VCSProvider">VCSProvider</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>update_mask</td>
                  <td><a href="#google.protobuf.FieldMask">google.protobuf.FieldMask</a></td>
                  <td></td>
                  <td><p>The list of fields to be updated. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.VCSProvider">VCSProvider</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the vcs provider.
Format: vcsProviders/{vcsProvider} </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The title of the vcs provider. It is used to display in the UI. Specified by the client. </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.v1.VCSType">VCSType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The url of the vcs provider. Specified by the client.
For example: github.com, gitlab.com, gitlab.bytebase.com. </p></td>
                </tr>
              
                <tr>
                  <td>access_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The access token of the vcs provider. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.VCSRepository">VCSRepository</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The id of the repository in vcs provider.
e.g. In GitLab, this is the corresponding project id. e.g. 123 </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The title of the repository in vcs provider.
e.g. sample-project </p></td>
                </tr>
              
                <tr>
                  <td>full_path</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The full_path of the repository in vcs provider.
e.g. bytebase/sample-project </p></td>
                </tr>
              
                <tr>
                  <td>web_url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Web url of the repository in vcs provider.
e.g. http://gitlab.bytebase.com/bytebase/sample-project </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
        <h3 id="bytebase.v1.VCSProviderService">VCSProviderService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>GetVCSProvider</td>
                <td><a href="#bytebase.v1.GetVCSProviderRequest">GetVCSProviderRequest</a></td>
                <td><a href="#bytebase.v1.VCSProvider">VCSProvider</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ListVCSProviders</td>
                <td><a href="#bytebase.v1.ListVCSProvidersRequest">ListVCSProvidersRequest</a></td>
                <td><a href="#bytebase.v1.ListVCSProvidersResponse">ListVCSProvidersResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CreateVCSProvider</td>
                <td><a href="#bytebase.v1.CreateVCSProviderRequest">CreateVCSProviderRequest</a></td>
                <td><a href="#bytebase.v1.VCSProvider">VCSProvider</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UpdateVCSProvider</td>
                <td><a href="#bytebase.v1.UpdateVCSProviderRequest">UpdateVCSProviderRequest</a></td>
                <td><a href="#bytebase.v1.VCSProvider">VCSProvider</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DeleteVCSProvider</td>
                <td><a href="#bytebase.v1.DeleteVCSProviderRequest">DeleteVCSProviderRequest</a></td>
                <td><a href="#google.protobuf.Empty">.google.protobuf.Empty</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SearchVCSProviderRepositories</td>
                <td><a href="#bytebase.v1.SearchVCSProviderRepositoriesRequest">SearchVCSProviderRepositoriesRequest</a></td>
                <td><a href="#bytebase.v1.SearchVCSProviderRepositoriesResponse">SearchVCSProviderRepositoriesResponse</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ListVCSConnectorsInProvider</td>
                <td><a href="#bytebase.v1.ListVCSConnectorsInProviderRequest">ListVCSConnectorsInProviderRequest</a></td>
                <td><a href="#bytebase.v1.ListVCSConnectorsInProviderResponse">ListVCSConnectorsInProviderResponse</a></td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>GetVCSProvider</td>
                <td>GET</td>
                <td>/v1/{name=vcsProviders/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>ListVCSProviders</td>
                <td>GET</td>
                <td>/v1/vcsProviders</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>CreateVCSProvider</td>
                <td>POST</td>
                <td>/v1/vcsProviders</td>
                <td>vcs_provider</td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdateVCSProvider</td>
                <td>PATCH</td>
                <td>/v1/{vcs_provider.name=vcsProviders/*}</td>
                <td>vcs_provider</td>
              </tr>
              
            
              
              
              <tr>
                <td>DeleteVCSProvider</td>
                <td>DELETE</td>
                <td>/v1/{name=vcsProviders/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>SearchVCSProviderRepositories</td>
                <td>POST</td>
                <td>/v1/{name=vcsProviders/*}:searchRepositories</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>ListVCSConnectorsInProvider</td>
                <td>GET</td>
                <td>/v1/{name=vcsProviders/*}/vcsConnectors</td>
                <td></td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    
      
      <div class="file-heading">
        <h2 id="v1/worksheet_service.proto">v1/worksheet_service.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.v1.CreateWorksheetRequest">CreateWorksheetRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>worksheet</td>
                  <td><a href="#bytebase.v1.Worksheet">Worksheet</a></td>
                  <td></td>
                  <td><p>The worksheet to create. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.DeleteWorksheetRequest">DeleteWorksheetRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the worksheet to delete.
Format: worksheets/{worksheet} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.GetWorksheetRequest">GetWorksheetRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the worksheet to retrieve.
Format: worksheets/{worksheet} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SearchWorksheetsRequest">SearchWorksheetsRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>filter</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>To filter the search result.
Format: only support the following spec for now:
- `creator = users/{email}`, `creator != users/{email}`
- `starred = true`, `starred = false`.
- `visibility = &#34;VISIBILITY_PRIVATE&#34;`, `visibility = &#34;VISIBILITY_PROJECT_READ | VISIBILITY_PROJECT_WRITE&#34;`, etc.
Not support empty filter for now. </p></td>
                </tr>
              
                <tr>
                  <td>page_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>Not used. The maximum number of worksheets to return. The service may return fewer than
this value.
If unspecified, at most 50 worksheets will be returned.
The maximum value is 1000; values above 1000 will be coerced to 1000. </p></td>
                </tr>
              
                <tr>
                  <td>page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Not used. A page token, received from a previous `SearchWorksheets` call.
Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to `SearchWorksheets` must match
the call that provided the page token. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.SearchWorksheetsResponse">SearchWorksheetsResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>worksheets</td>
                  <td><a href="#bytebase.v1.Worksheet">Worksheet</a></td>
                  <td>repeated</td>
                  <td><p>The worksheets that matched the search criteria. </p></td>
                </tr>
              
                <tr>
                  <td>next_page_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Not used. A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdateWorksheetOrganizerRequest">UpdateWorksheetOrganizerRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>organizer</td>
                  <td><a href="#bytebase.v1.WorksheetOrganizer">WorksheetOrganizer</a></td>
                  <td></td>
                  <td><p>The organizer to update.

The organizer&#39;s `worksheet` field is used to identify the worksheet.
Format: worksheets/{worksheet} </p></td>
                </tr>
              
                <tr>
                  <td>update_mask</td>
                  <td><a href="#google.protobuf.FieldMask">google.protobuf.FieldMask</a></td>
                  <td></td>
                  <td><p>The list of fields to be updated.
Fields are specified relative to the worksheet organizer.
Only support update the following fields for now:
- `starred` </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.UpdateWorksheetRequest">UpdateWorksheetRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>worksheet</td>
                  <td><a href="#bytebase.v1.Worksheet">Worksheet</a></td>
                  <td></td>
                  <td><p>The worksheet to update.

The worksheet&#39;s `name` field is used to identify the worksheet to update.
Format: worksheets/{worksheet} </p></td>
                </tr>
              
                <tr>
                  <td>update_mask</td>
                  <td><a href="#google.protobuf.FieldMask">google.protobuf.FieldMask</a></td>
                  <td></td>
                  <td><p>The list of fields to be updated.
Fields are specified relative to the worksheet.
(e.g. `title`, `statement`; *not* `worksheet.title` or `worksheet.statement`)
Only support update the following fields for now:
- `title`
- `statement`
- `starred`
- `visibility` </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.Worksheet">Worksheet</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the worksheet resource, generated by the server.
Canonical parent is project.
Format: worksheets/{worksheet} </p></td>
                </tr>
              
                <tr>
                  <td>project</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The project resource name.
Format: projects/{project} </p></td>
                </tr>
              
                <tr>
                  <td>database</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The database resource name.
Format: instances/{instance}/databases/{database}
If the database parent doesn&#39;t exist, the database field is empty. </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The title of the worksheet. </p></td>
                </tr>
              
                <tr>
                  <td>creator</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The creator of the Worksheet.
Format: users/{email} </p></td>
                </tr>
              
                <tr>
                  <td>create_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>The create time of the worksheet. </p></td>
                </tr>
              
                <tr>
                  <td>update_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>The last update time of the worksheet. </p></td>
                </tr>
              
                <tr>
                  <td>content</td>
                  <td><a href="#bytes">bytes</a></td>
                  <td></td>
                  <td><p>The content of the worksheet.
By default, it will be cut off in SearchWorksheet() method. If it doesn&#39;t match the `content_size`, you can
use GetWorksheet() request to retrieve the full content. </p></td>
                </tr>
              
                <tr>
                  <td>content_size</td>
                  <td><a href="#int64">int64</a></td>
                  <td></td>
                  <td><p>content_size is the full size of the content, may not match the size of the `content` field. </p></td>
                </tr>
              
                <tr>
                  <td>visibility</td>
                  <td><a href="#bytebase.v1.Worksheet.Visibility">Worksheet.Visibility</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>starred</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>starred indicates whether the worksheet is starred by the current authenticated user. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.v1.WorksheetOrganizer">WorksheetOrganizer</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>worksheet</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the worksheet.
Format: worksheets/{worksheet} </p></td>
                </tr>
              
                <tr>
                  <td>starred</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>starred means if the worksheet is starred. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.v1.Worksheet.Visibility">Worksheet.Visibility</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>VISIBILITY_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>VISIBILITY_PROJECT_READ</td>
                <td>1</td>
                <td><p>Read access in project scope, worksheet OWNER/DBA and project OWNER can read/write, other project members can read.</p></td>
              </tr>
            
              <tr>
                <td>VISIBILITY_PROJECT_WRITE</td>
                <td>2</td>
                <td><p>Write access in project scope, worksheet OWNER/DBA and all members in the project can write the worksheet.</p></td>
              </tr>
            
              <tr>
                <td>VISIBILITY_PRIVATE</td>
                <td>3</td>
                <td><p>Private, only worksheet OWNER can read/write.</p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
        <h3 id="bytebase.v1.WorksheetService">WorksheetService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>CreateWorksheet</td>
                <td><a href="#bytebase.v1.CreateWorksheetRequest">CreateWorksheetRequest</a></td>
                <td><a href="#bytebase.v1.Worksheet">Worksheet</a></td>
                <td><p>Create a personal worksheet used in SQL Editor.</p></td>
              </tr>
            
              <tr>
                <td>GetWorksheet</td>
                <td><a href="#bytebase.v1.GetWorksheetRequest">GetWorksheetRequest</a></td>
                <td><a href="#bytebase.v1.Worksheet">Worksheet</a></td>
                <td><p>Get a worksheet by name.
The users can access this method if,
- they are the creator of the worksheet;
- they have bb.worksheets.get permission on the workspace;
- the sheet is shared with them with PROJECT_READ and PROJECT_WRITE visibility, and they have bb.projects.get permission on the project.</p></td>
              </tr>
            
              <tr>
                <td>SearchWorksheets</td>
                <td><a href="#bytebase.v1.SearchWorksheetsRequest">SearchWorksheetsRequest</a></td>
                <td><a href="#bytebase.v1.SearchWorksheetsResponse">SearchWorksheetsResponse</a></td>
                <td><p>Search for worksheets.
This is used for finding my worksheets or worksheets shared by other people.
The sheet accessibility is the same as GetWorksheet().</p></td>
              </tr>
            
              <tr>
                <td>UpdateWorksheet</td>
                <td><a href="#bytebase.v1.UpdateWorksheetRequest">UpdateWorksheetRequest</a></td>
                <td><a href="#bytebase.v1.Worksheet">Worksheet</a></td>
                <td><p>Update a worksheet.
The users can access this method if,
- they are the creator of the worksheet;
- they have bb.worksheets.manage permission on the workspace;
- the sheet is shared with them with PROJECT_WRITE visibility, and they have bb.projects.get permission on the project.</p></td>
              </tr>
            
              <tr>
                <td>UpdateWorksheetOrganizer</td>
                <td><a href="#bytebase.v1.UpdateWorksheetOrganizerRequest">UpdateWorksheetOrganizerRequest</a></td>
                <td><a href="#bytebase.v1.WorksheetOrganizer">WorksheetOrganizer</a></td>
                <td><p>Update the organizer of a worksheet.
The access is the same as UpdateWorksheet method.</p></td>
              </tr>
            
              <tr>
                <td>DeleteWorksheet</td>
                <td><a href="#bytebase.v1.DeleteWorksheetRequest">DeleteWorksheetRequest</a></td>
                <td><a href="#google.protobuf.Empty">.google.protobuf.Empty</a></td>
                <td><p>Delete a worksheet.
The access is the same as UpdateWorksheet method.</p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>CreateWorksheet</td>
                <td>POST</td>
                <td>/v1/worksheets</td>
                <td>worksheet</td>
              </tr>
              
            
              
              
              <tr>
                <td>GetWorksheet</td>
                <td>GET</td>
                <td>/v1/{name=worksheets/*}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>SearchWorksheets</td>
                <td>POST</td>
                <td>/v1/worksheets:search</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdateWorksheet</td>
                <td>PATCH</td>
                <td>/v1/{worksheet.name=worksheets/*}</td>
                <td>worksheet</td>
              </tr>
              
            
              
              
              <tr>
                <td>UpdateWorksheetOrganizer</td>
                <td>PATCH</td>
                <td>/v1/{organizer.worksheet=worksheets/*}/organizer</td>
                <td>organizer</td>
              </tr>
              
            
              
              
              <tr>
                <td>DeleteWorksheet</td>
                <td>DELETE</td>
                <td>/v1/{name=worksheets/*}</td>
                <td></td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    
      
      <div class="file-heading">
        <h2 id="v1/workspace_service.proto">v1/workspace_service.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      

      

      

      
        <h3 id="bytebase.v1.WorkspaceService">WorkspaceService</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>GetIamPolicy</td>
                <td><a href="#bytebase.v1.GetIamPolicyRequest">GetIamPolicyRequest</a></td>
                <td><a href="#bytebase.v1.IamPolicy">IamPolicy</a></td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SetIamPolicy</td>
                <td><a href="#bytebase.v1.SetIamPolicyRequest">SetIamPolicyRequest</a></td>
                <td><a href="#bytebase.v1.IamPolicy">IamPolicy</a></td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>GetIamPolicy</td>
                <td>GET</td>
                <td>/v1/{resource=workspaces/*}:getIamPolicy</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>SetIamPolicy</td>
                <td>POST</td>
                <td>/v1/{resource=workspaces/*}:setIamPolicy</td>
                <td>*</td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    

    <h2 id="scalar-value-types">Scalar Value Types</h2>
    <table class="scalar-value-types-table">
      <thead>
        <tr><td>.proto Type</td><td>Notes</td><td>C++</td><td>Java</td><td>Python</td><td>Go</td><td>C#</td><td>PHP</td><td>Ruby</td></tr>
      </thead>
      <tbody>
        
          <tr id="double">
            <td>double</td>
            <td></td>
            <td>double</td>
            <td>double</td>
            <td>float</td>
            <td>float64</td>
            <td>double</td>
            <td>float</td>
            <td>Float</td>
          </tr>
        
          <tr id="float">
            <td>float</td>
            <td></td>
            <td>float</td>
            <td>float</td>
            <td>float</td>
            <td>float32</td>
            <td>float</td>
            <td>float</td>
            <td>Float</td>
          </tr>
        
          <tr id="int32">
            <td>int32</td>
            <td>Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.</td>
            <td>int32</td>
            <td>int</td>
            <td>int</td>
            <td>int32</td>
            <td>int</td>
            <td>integer</td>
            <td>Bignum or Fixnum (as required)</td>
          </tr>
        
          <tr id="int64">
            <td>int64</td>
            <td>Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.</td>
            <td>int64</td>
            <td>long</td>
            <td>int/long</td>
            <td>int64</td>
            <td>long</td>
            <td>integer/string</td>
            <td>Bignum</td>
          </tr>
        
          <tr id="uint32">
            <td>uint32</td>
            <td>Uses variable-length encoding.</td>
            <td>uint32</td>
            <td>int</td>
            <td>int/long</td>
            <td>uint32</td>
            <td>uint</td>
            <td>integer</td>
            <td>Bignum or Fixnum (as required)</td>
          </tr>
        
          <tr id="uint64">
            <td>uint64</td>
            <td>Uses variable-length encoding.</td>
            <td>uint64</td>
            <td>long</td>
            <td>int/long</td>
            <td>uint64</td>
            <td>ulong</td>
            <td>integer/string</td>
            <td>Bignum or Fixnum (as required)</td>
          </tr>
        
          <tr id="sint32">
            <td>sint32</td>
            <td>Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.</td>
            <td>int32</td>
            <td>int</td>
            <td>int</td>
            <td>int32</td>
            <td>int</td>
            <td>integer</td>
            <td>Bignum or Fixnum (as required)</td>
          </tr>
        
          <tr id="sint64">
            <td>sint64</td>
            <td>Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.</td>
            <td>int64</td>
            <td>long</td>
            <td>int/long</td>
            <td>int64</td>
            <td>long</td>
            <td>integer/string</td>
            <td>Bignum</td>
          </tr>
        
          <tr id="fixed32">
            <td>fixed32</td>
            <td>Always four bytes. More efficient than uint32 if values are often greater than 2^28.</td>
            <td>uint32</td>
            <td>int</td>
            <td>int</td>
            <td>uint32</td>
            <td>uint</td>
            <td>integer</td>
            <td>Bignum or Fixnum (as required)</td>
          </tr>
        
          <tr id="fixed64">
            <td>fixed64</td>
            <td>Always eight bytes. More efficient than uint64 if values are often greater than 2^56.</td>
            <td>uint64</td>
            <td>long</td>
            <td>int/long</td>
            <td>uint64</td>
            <td>ulong</td>
            <td>integer/string</td>
            <td>Bignum</td>
          </tr>
        
          <tr id="sfixed32">
            <td>sfixed32</td>
            <td>Always four bytes.</td>
            <td>int32</td>
            <td>int</td>
            <td>int</td>
            <td>int32</td>
            <td>int</td>
            <td>integer</td>
            <td>Bignum or Fixnum (as required)</td>
          </tr>
        
          <tr id="sfixed64">
            <td>sfixed64</td>
            <td>Always eight bytes.</td>
            <td>int64</td>
            <td>long</td>
            <td>int/long</td>
            <td>int64</td>
            <td>long</td>
            <td>integer/string</td>
            <td>Bignum</td>
          </tr>
        
          <tr id="bool">
            <td>bool</td>
            <td></td>
            <td>bool</td>
            <td>boolean</td>
            <td>boolean</td>
            <td>bool</td>
            <td>bool</td>
            <td>boolean</td>
            <td>TrueClass/FalseClass</td>
          </tr>
        
          <tr id="string">
            <td>string</td>
            <td>A string must always contain UTF-8 encoded or 7-bit ASCII text.</td>
            <td>string</td>
            <td>String</td>
            <td>str/unicode</td>
            <td>string</td>
            <td>string</td>
            <td>string</td>
            <td>String (UTF-8)</td>
          </tr>
        
          <tr id="bytes">
            <td>bytes</td>
            <td>May contain any arbitrary sequence of bytes.</td>
            <td>string</td>
            <td>ByteString</td>
            <td>str</td>
            <td>[]byte</td>
            <td>ByteString</td>
            <td>string</td>
            <td>String (ASCII-8BIT)</td>
          </tr>
        
      </tbody>
    </table>
  </body>
</html>

